详细

【JS系列4】 javascript 数组

1. 创建方法

  • 空数组 var obj = new Array();
  • 指定长度的数组 var obj = new Array(size);
  • 指定元素数组 var obj = new Array(元素1,元素2 ... ,元素N);
  • 单维数组 var obj = [元素1,元素2 ... ,元素N];
  • 多维数组 “var obj = new Array([数组序列1],[数组序列2],[数组序列N]);

2. 基本操作

2-1 存储数组元素

  • 单位数组 数组名[下表索引]
  • 多维数组 数组名[下表索引][内层元素下标]
  • 特性 数组长度是弹性的,可自由伸缩 数组下标从0开始 下标类型:数值,非数值(转为字符串,生成关联数组,下标将作为对象的属性名字)

2-2 增加数组

  • 使用“[]”运算符指定一个新下标

2-3 删除数组

  • delete 数组名[下标] 注:数组长度不会改变

2-4 遍历数组

  • for()
  • 遍历对象 for(var 属性 in 对象)

3. 数组属性

  • constructor 引用数组对象的构造函数
  • length 返回数组的长度
  • prototype 通过增加属性和方法扩展数组定义

4. ECMAScript 3 方法

4-1 添加

  • push() 在数组末尾添加数组
  • unshift() 在数组头部添加元素
  • concat() 合并两个数组

4-2 删除

  • pop()删除并返回数值的最后一个元素
  • shift() 删除并返回数组的第一个元素 注:pop为栈方法先进后出 shift为队列方法先进先出

4-3 字数组

  • splice() 删除任意数量的项:①要删除的起始下标 ②要删除的项数 在指定位置插入指定的项:①起始下标 ②0(不删除任何项)③要插入的项 替换任意数量的项:①起始下标 ②要删除的项数 ③要插入的项

  • slice() 功能:从已有数组中选取部分元素构成新数组 参数: ①返回项的起始位置 ②返回项的结束位置 特性:如果是负数,则用数组长度加上该值确定位置 起始位置实为数组的实际下标 结束位置的实际下标为结束数值减1

4-4 数组排序

  • reverse() 颠倒数组中元素的顺序
  • sort() 功能:对字符数组或数字数组进行排序 特性:默认为按字符串比较 按数值大小比较,需要函数支持(升序)
function compare(value1,value2){
if(value1 < value2){
return -1;
}else if(value1 > value2){
return 1;
}else{
return 0;
}
}

4-5 数组转换

  • toString() 转换为字符串并返回
  • toLocaleString() 转换为本地格式字符串并返回
  • join() 用指定的分隔符分割数组并转换为字符串

5. ECMAScript 5 方法

5-1 位置方法

  • indexOf()从数组的起始位置开始查找
  • lastIndexOf()从数组的结束位置开始查找

5-2 迭代方法

  • every 如果该函数对每一项都返回true,则返回true
  • filter 返回值为true的所有数组成员
  • forEach 无返回值
  • map 返回每次函数调用的结果数组
  • some 有任意一项返回true,则返回true 注:array.every(element,index,array),参数1:要遍历当前数组的元素,参数2:遍历的数组序号,参数3:遍历的数组。

5-3 缩小方法

  • reduce 从数组起始位开始遍历
  • reduceRight 从数组末尾开始遍历 注:array.reduce(function(previous,current,index,array),initValue) initValue == previous 若省略initValue默认把数组第一个元素当做previous