JavaScript数组的使用方法
2011-09-12 00:00
871 查看
由于javascript是一种无类型语言,所以一个数组的元素可以具有任意的数据类型,同一个数组的不同元素,可以具有不同的类型,数组的元素设置可以包含其他数组,这样就可以创建一个复杂的数组了。
并且在这点上说javascript作为一种脚本语言不同于那种严格的面向对象的c++、c#、java了,具有更高的灵活性。
在javascript1.1和其后的版本中,数组是用构造函数Array()和运算符new来创建,可用以下的三种方式来创建javascript中的数组。
程序输出:a[1.23]=test
相信每位从强类型的编程语言学习javascript时,绝对会以为上面这种操作感到惊讶。float数据也作数组的下标了,事实上并非如您所想。
javascript在你使用负数,浮点数,或布尔型,对象,其他值时,javascript会将它转换为一个字符串。用生成的字符串作为对象的属性名字,而不是定义了一个新的数组元素。
上面的实例事实就是为 a 创建了一个名为:"1.23"的属性。
程序输出:
以上测试也很明确我们用整数作为数组的下标是才会真正为数组添加一个元素,这里用数组的长度来体现了javascript的数组中的奥妙。
通过设置数组的length属性能过截断数组的长度。
这里测试我们的多维数组元素。javascript中实际上是不支持多维数组,但是我们将一个一维数组的元素再赋给其一个一维数组,这样就看起来就实现了多维数组了,但实际上他还是个一维数组,这和我们理解C语言的数组时的那种想法一样,但他们的实现机制是不一样的。
数组join()方法:
数组的reverse()方法:
concat()方法的测试:
但是concat函数不会递归地展开一个元素为数组的数组。
slice()方法:返回的数组包含有第一个参数指定的元素和那个元素开始到第二个参数指定的元素为止的元素但不包含第二个参数所指定的元素。
splice()方法是插入或删除数组元素通用的方法。splice函数第一个参数指定了要插入或删除的元素在数组中的位置。第二个参数指定了要从数组中删除的元个数,在第二参数之后可以有任意多个参数,它们指定的是从第一个参数指定的位置处插入的元素。第一个元素及后续元素,做出相应的移动。
javascript中的数组作为堆栈时和php类似,这点有趣更有用。以下是作为堆栈是使用的小实例:
push方法是将一个或多个新元素附加到数组的尾部,然后返回数组的新长度。pop将删除数组的最后一个元素,坚守数组的长度,返回他删除的值。
以下是作为队列使用的小实例:
unshift方法将一个或多个元素添加到数组元素的头部,然后把已有的元素移动到下标最大的位置已腾出空间
,它返回的是主族的新长度。
方法shift是删除并返回数组的第一个元素,然后将后面的所有元素都向前移动以填补第一个元素留下的空白。
此外就剩下,我们在java中熟悉的toString()方法了:
说白了,其实数组的toString()方法和无参数的join()的效果是完全相同。
OK,就说到这里。
并且在这点上说javascript作为一种脚本语言不同于那种严格的面向对象的c++、c#、java了,具有更高的灵活性。
在javascript1.1和其后的版本中,数组是用构造函数Array()和运算符new来创建,可用以下的三种方式来创建javascript中的数组。
var a = new Array(); var b = new Array(5, 4, 3, "first", "test,string"); var c = new Array(20); a[1.23] = "test"; document.write("a[1.23]="+a[1.23]);
程序输出:a[1.23]=test
相信每位从强类型的编程语言学习javascript时,绝对会以为上面这种操作感到惊讶。float数据也作数组的下标了,事实上并非如您所想。
javascript在你使用负数,浮点数,或布尔型,对象,其他值时,javascript会将它转换为一个字符串。用生成的字符串作为对象的属性名字,而不是定义了一个新的数组元素。
上面的实例事实就是为 a 创建了一个名为:"1.23"的属性。
var a = new Array(); var b = new Array(5, 4, 3, "first", "test,string"); var c = new Array(20); a[1.23] = "test"; document.write("a.length = " + a.length + "<br />"); document.write("b.length = " + b.length + "<br />"); document.write("c.length = " + c.length + "<br />"); a[3]="Test"; document.write("<br />a[3]="+a[3]); document.write("<br />a.length="+a.length);
程序输出:
a.length = 0 b.length = 5 c.length = 20 a[3]=Test a.length=4
以上测试也很明确我们用整数作为数组的下标是才会真正为数组添加一个元素,这里用数组的长度来体现了javascript的数组中的奥妙。
通过设置数组的length属性能过截断数组的长度。
a.length=3; if (a[3]==undefined) { document.write("<br />在a.length="+a.length+"后,a[3]="+a[3]); } else { document.write("<br />在a.length="+a.length+"后,a[3]="+a[3]); }
这里测试我们的多维数组元素。javascript中实际上是不支持多维数组,但是我们将一个一维数组的元素再赋给其一个一维数组,这样就看起来就实现了多维数组了,但实际上他还是个一维数组,这和我们理解C语言的数组时的那种想法一样,但他们的实现机制是不一样的。
var g = new Array(3); g[3] = a; g[3][2] = "Test"; document.write("<br />g[3][2]="+g[3][2]);
数组join()方法:
for (var i=0; i<20; i++ ) { c[i]=i; document.write("<br />c[i]="+c[i]); } document.write("<br />c的元素join()方法后是:"+c.join());
数组的reverse()方法:
c.reverse(); document.write("<br />c的元素在reverse()方法再join()后的结果是:"+c.join("|"));
concat()方法的测试:
var h = new Array(1,2,3); h = h.concat([4,5]);
但是concat函数不会递归地展开一个元素为数组的数组。
h = h.concat(6,7,[9,[10,20]]); document.write("<br />h.length="+h.length+"<br />"+h); document.write("h[8]="+h[8]);
slice()方法:返回的数组包含有第一个参数指定的元素和那个元素开始到第二个参数指定的元素为止的元素但不包含第二个参数所指定的元素。
document.write("<br>h.slice(4,5)="+h.slice(4,5)); document.write("h.slice(5,9)="+h.slice(5,9))
splice()方法是插入或删除数组元素通用的方法。splice函数第一个参数指定了要插入或删除的元素在数组中的位置。第二个参数指定了要从数组中删除的元个数,在第二参数之后可以有任意多个参数,它们指定的是从第一个参数指定的位置处插入的元素。第一个元素及后续元素,做出相应的移动。
document.write("<br />h.splice(8,1)后的h为::"+h.splice(8,1)); //document.write("<br />h.splice(8,0,'a','b','Test')后的h为::"+h.splice(8,0,'a','b','Test')); h.splice(7,0,'a','b','Test'); document.write("<br />h.splice(7,0,'a','b','Test')后的h为:"+h);
javascript中的数组作为堆栈时和php类似,这点有趣更有用。以下是作为堆栈是使用的小实例:
push方法是将一个或多个新元素附加到数组的尾部,然后返回数组的新长度。pop将删除数组的最后一个元素,坚守数组的长度,返回他删除的值。
var stack = new Array(); stack.push(1,2); document.write("<br />stack的元素是:"+stack); document.write("<br />stack.length="+stack.length); document.write("<br />stack.pop()返回的结果是:"+stack.pop()); document.write("<br />stack.length="+stack.length);
以下是作为队列使用的小实例:
unshift方法将一个或多个元素添加到数组元素的头部,然后把已有的元素移动到下标最大的位置已腾出空间
,它返回的是主族的新长度。
方法shift是删除并返回数组的第一个元素,然后将后面的所有元素都向前移动以填补第一个元素留下的空白。
var list = []; list.unshift(6,2); document.write("<br >list的内容为:"+list); document.write("<br />list的shift方法是:"+list.shift());
此外就剩下,我们在java中熟悉的toString()方法了:
document.write(c.toString());
说白了,其实数组的toString()方法和无参数的join()的效果是完全相同。
OK,就说到这里。
相关文章推荐
- javascript数组的一些基本使用方法
- javascript的数组使用方法
- 详解JavaScript中数组和字符串的lastIndexOf()方法使用
- javascript数组使用调用方法汇总
- 浅谈JavaScript--Array数组sort()排序方法与自定义比较器的使用
- javascript 数组的定义及使用方法
- javascript中数组的concat()方法使用介绍
- javascript 数组使用方法汇总
- 在JavaScript中处理数组之reverse()方法的使用
- JavaScript把数组作为堆栈使用的方法
- JavaScript 使用sort()方法来给数组排序
- JavaScript使用indexOf()实现数组去重的方法分析
- javascript 数组方法的使用
- 关于javascript里面仿python切片操作数组的使用方法
- JavaScript使用push方法添加一个元素到数组末尾用法实例
- JavaScript学习笔记 创建数组,数组方法使用
- Acticle 5:javascript数组:数组基础及数组方法的各种使用
- javascript数组的基本使用方法
- 在Javascript中处理数组之toSource()方法的使用