一、创建方法
1、空数组
1 | var Obj = new Array(); |
2、指定长度数组
1 | var Obj = new Array(Size); |
3、指定元素数组
1 | var Obj = new Array(元素1,元素2,元素3,...,元素N); |
4、单维数组
1 | var Obj = [元素1,元素2,元素3,...,元素N] |
5、多维数组
1 | var a = new Array([数组序列1],[数组序列2],[数组序列N]); |
二、基本操作
1、存取数组元素
单维数组
1
数组名[下标索引]
多维数组
1
数组名[外层数组下标][内层元素下标]
特性
- 数组长度是弹性的,可自由伸缩
- 数组下标从0开始
- 下标类型
- 数值
- 非数值
- 转为字符串
- 生成关联数组
- 下标将作为对象属性的名字
- 数组元素可添加到对象中
2、增加数组
1 | 使用“[]”运算符指定一个新下标 |
3、删除数组
1 | delete数组名[下标]; |
4、遍历数组
1 | for(var 数组元素变量 in 数组) |
三、数组属性
1、constructor
引用数组对象的构造函数
2、length
返回数组的长度
3、prototype
通过增加属性和方法扩展数组定义
四、ECMAScript 3 方法
1、添加
push()
在数组末尾增加数组
unshift
在数组头部添加元素
concat
合并两个数组
2、删除
pop()
删除并返回数值的最后一个元素
shift()
删除并返回数组的第一个元素
队列方法,先进先出
栈方法,后进先出
3、子数组
splice()
- 删除任意数量的项
- 要删除的起始下标
- 要删除的项数
- 在指定位置插入指定的项
- 起始下标
- 0(不删除任何项)
- 要插入的项
- 替换任意数量的项
- 起始下标
- 要删除的项数
- 要插入的项
- 删除任意数量的项
功能
从已有数组中选取部分元素构成新数组
参数
- 返回项的起始位置
- 返回项的结束位置
特性
- 如果是负数,则用数组长度加上该值确定位置
- 起始位置实为数组的实际下标
- 结束位置的实际下标为结束数值减1
4、数组排序
reverse()
颠倒数组中元素的顺序
sort()
功能:对字符数组或数字数组进行排序
特性:按数值大小比较,需函数支持(升序)
1
2
3
4
5
6
7
8
9
10function
compare(value1,value2){
if(value1 < value2){
return -1;
} else if(value1 > value2){
return 1;
} else {
return 0;
}
}
5、数组转换
toString()
转换为字符串并返回
toLocaleString()
转换为本地格式字符串并返回
join()
用指定分隔符分割数组并转换为字符串
五、ECMAScript 5 方法
1、位置方法
indexof
从数组的起始位置开始查找
lastIndexof
从数组的结束位置开始查找
参数
- 要查找的项
- 标识查找起点的位置索引
2、迭代方法
every
如果该函数对每一项都返回true,则返回true
filter
返回值为true的所有数组成员
forEach
无返回值
map
返回每次函数调用的结果数组
some
有任意一项返回true,则返回true
参数
- 接收参数
- 要在每一项上运行的函数
- 运行该函数的作用域对象
- 传入参数
- 数组项的值 item
- 该项在数组中的位置index
- 数组对象本身 array
- 接收参数
3、缩小方法
reduce
从数组起始位开始遍历
reduceRight
从数组末尾开始遍历
参数
- 接收参数
- 每一项上调用的函数
- 作为缩小基础的初始值
- 传入参数
- 前一个值 prev
- 当前值 cur
- 项的索引 index
- 数组对象 array
- 接收参数