新随笔  :: 联系 :: 订阅 订阅  :: 管理

javascript数组

Posted on 2011-03-16 16:50  张贺  阅读(467)  评论(0编辑  收藏  举报

创建数组
构造函数Array创建数组
var a=new Array();
var a=new Array(10);
var a=new Array(1,2,3,'z','h');
数组直接量创建数组
var a=[1,2,3,'z','h'];

数组元素的读和写
a[i] i为数组下标,从0开始,且小于2的32次幂-1。如果使用的数字太大,或者使用了负数、浮点数,JS会将它转换为一个字符串,用生成的

字符串作为对象属性的名字,而不是作为数组下标。

为数组添加元素


数组长度
所有数组都有length属性,该属性会自动更新,该属性常用语遍历数组
a[i]!=undefined可用来检测数组元素是否存在
数组的length属性同时可写,若值大于数组长度,则数组将会自动补齐,如小于数组长度,则自动将数组阶段,这是唯一截取数组的方式,使

用delete删除元素,只是将元素定义为undefined,长度并没有改变。


数组方法

join(separator)
  将数组用separator分割为字符串,默认为','

reverse()
  返回元素位置颠倒的数组(并不是创建了新数组)

sort()
  在原数组上进行排序,若没有参数,则按照字母顺序进行排序,若数组还有为定义元素,为定义元素将被放在数组末尾。
如果要将数组按别的顺序排序,必须传递一个函数,该函数确定它的2个参数的前后位置:如果第一个参数应该在前,那么比较函数将返回一个

小于0的数;第二个参数在前,将返回一个大于0的数;如果2个参数相等,返回0.

concat()
  该方法能创建并返回一个将参数附加到原数组尾部的新数组,若参数也是一个数组,则将该数组元素展开附加的新数组中,但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]]

slice(start,length)
  返回指定数组的一个片段(并不创建新数组).如果length未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。

splice() 该方法将修改原数组
  arrayObject.splice(index,length,element1,.....,elementX)
index:指定要插入或删除元素在数组中的位置;length:删除的长度;elementn为将要插入数组中的元素
var a=[1,2,3,4,5,6,7,8];
a.splice(4); //返回[5,6,7,8]; a是[1,2,3,4]
a.splice(1,2) //返回[2,3];a是[1,4]
a.splice(1,1) //返回[4];a是[1]
var a=[1,2,3,4,5,6]
a.splice(2,0,'a','b') //返回[];a是[1,2,'a','b',3,4,5,6]


push()和pop() 这2个方法都将修改原数组
  push()可以将一个或多个新元素附加到数组尾部,然后返回数组的新长度
  pop()将删除数组中的最后一个元素,减少数组的长度,返回它删除的值


unshift()和shift()
  与push()和pop()类似,只不过这2个方法在数组头操作