定义数组有两种方法:
1.构造函数Array()
a. 如果构造函数无参数,则构造一个空数组
b. 如果构造函数带有一个参数列表,则每个参数指定一个元素的值,值的类型是任意的。数组的长度是参数列表中参数的个数
c.如果构造函数只有一个数值参数,则该数值默认为数组的长度,每个元素的值预定义为undefined
2.数组直接量---初始化效率最高
方法是在括号运算符中包含多个值列表,逗号分割。
使用注意事项:
1.数组长度是弹性的。
2.数组下标从0开始,可以为表达式。
3.数组长度必须小于2^32-1,否则,会自动将它转为一个字符串,从而生成与字符串关联的关联数组,即,把数组做为一个对象,数组下标做为对象属性的名字,不在是数组下标。
数组操作:
push() 给数组添加元素
pop()删除并返回数组最后一个元素
unshift() 在数组头部插入一个元素,可以包含多个参数,此时在数组头部一次性插入多个参数,顺序同参数顺序
shift() 将元素移出数组,并返回元素值,
concat()连接数组----返回新创建的数组
splice() 插入、删除或替换数组元素,第一个参数为操作的起始下标位置,第二个参数指定要删除元素的个数,第三个及后面的所有不确定参数为将要插入的元素,无参数时不做操作,一个参数时删除指定下标开始的所有,返回值为被删除后的子数组;如果第一个参数为负值,从右往左定位,如果第二个参数为负,按0算。
slice() 截取数组,两个参数,分别为起始和结束的下标,返回截取后的数组;如果仅指定一个参数,截取从指定下标起、到结束的数组。参数为负数时,从右往左数。第一个参数大于数组长度时,不做操作,第二个参数大于数组长度时,按数组长度算。
sort() 排序
reverse() 倒序
toString() 数组转字符串,逗号分割
join() 将数组元素连接起来以构建一个字符串,参数为连接数组元素的字符串
迭代:
foreach: 语法:array.forEach(callbackfn[,thisArg])
callbackfn:必须参数,最多可以接收三个参数的函数,对于数组中的每个元素,forEach都会调用callbackfn一次。
thisArg:callbackfn中可引用的this对象
回调函数说明:function callbackfn(value,index,array)
value 数组元素值,index 数组元素的数字索引 array 包含该元素的数组对象
every:确定数组的所有成员是否满足指定的测试,语法同foreach
map:
filter:返回回调函数中满足指定条件的数组
reduce:对数组中所有元素调用指定回调,该回调函数的返回值为累积结果,并且在下一次调用该回调时做为参数传递。
reduceRight:同上,从右往左