分类: 系统运维
2008-04-07 11:31:00
1,数组的创建 1),var array=new Array() 创建一个空数组,数组中没有任何元素。 长度会随着元素的添加而发生变化。
2),var array=new Array(1,2.3,"test","abio"); js中的数组可以包含不同类型的元素。这里创建了一个长度属性length为5的数组。 3),var array=new Array(10); 定义一个数组具有初始化指定的长度。数组的元素并未初始化,值为undefined js1.2中引入了数组直接量用于定义一个数组: var arr=[1,[2,3],"test"]; |
2,数组元素的读写 在c++,java之类的语言中数组必须在创建时指定其长度,并且这个长度是不可变的。在js中则不是这么一回事。 var a=new Array(3); for(var i=0;i a[a.length+1]=a.length+1; 1),js只会给数组中实际占用了空间的索引分配内存空间。如一个数组下标从1..1000,只有索引1,1000赋值。那么js只会为这两个索引分配内存。 2),数组元素也可以添加到对象中。 如var circle=new Circle(2,3); circle[0]="this is an element of an object"; 检索数组元素(一般使用for..in循环)需要注意一个问题,就是数组中存储的元素未必是连续的,并且不一定是从下标0开始:
将元素从数组中删除的唯一方式就是数值length属性。使用delete虽然可以将一个元素的值设为undefined,但是数组的长度并没有改变。
|
3,数组的常用方法 1),array.join方法,可以指定分隔符实现数组元素的链接。与String.split方法正好相反 [1,2,3].join(":")//返回的是“1:2:3” 若没有指定字符串,即没有参数调用。则默认使用,作为分隔符。 2),reverse方法 var array=[1,2,3] array.reverse(); alert(array.join()); 3),sort方法 可以给sort方法 传入参数或者不传入参数,参数使用的是一个函数数据,用于比较两个元素的大小。若无参,则依照字母进行排序。 var a=[33,4.1111,222] a.sort()//依照字母进行排序,返回的是1111,222,33,4 a.sort(function(a,b){ return a-b; })//返回4,33,222,1111 4),concat方法 var a=[1,2,3] a.concat(4,5)//返回[1,2,3,4,5] a.concat([4,5])//返回[1,2,3,4,5] a.concat([4,5],[6,7])//返回[1,2,3,4,5,6,7] a.concat(4,[5,[6,7]])//返回[1,2,3,4,5,[6,7]] 5),slice方法 var a=[1,2,3,4,5] a.slice(0,3);//返回[1,2,3] a.slice(3);//返回[4,5] a.slice(1,-1);//返回[2,3,4] a.slice(-3,-2)//返回[3] 其他的方法,splice,pop/push,unshift/shift等等。pop/push,从数组尾部进行插入或者删除,而unshift/shift是从数组的开头进行插入和删除。toString,toSource方法etc
|