组成
键值对构成的有序数据集合(属性,值,方法)
创建方法
- 构造函数
var arr = new Array(1, 2);
- 字面量
var arr = [1, 2];
操作方法
var demo = [3 ,4 ,5]; //以下操作均以demo为例,方法之间不连续
- 基本操作方法
demo[3] = 6; //添加方法
delete demo[2]; //删除方法
- 栈方法:
demo.push(6); //将新元素追加到数组中
demo.pop(); //将数组中最后一个元素移除
- 队列方法:
demo.unshift(7); //向数组头部添加一个元素
demo.shift(); //移除数组中的第一个元素,index和length随之改变
- 神器:splice`方法,一次性解决数组添加,删除,替换的问题,
demo.splice(1, 2); //删掉demo数组index为1开始的2个元素,index和length随之发生改变
demo.splice(2, 0, 99, 9, 999); //在index为2之前,注意是之前添加 99,9,999 三个元素
demo.splice(1, 1, 2); //把index为1开始的1个元素替换为2
- 其他方法
- join
demo.join(',') //把数组元素使用参数作为连接符连接成一个字符串
- slice
demo.slice(1, 2) //返回index为1开始的两个元素作为一个新的数组
- concat
var arr=[56, 57]; demo.concat(arr); //拼接数组,放回一个新的数组
- reverse
demo.reverse(); //将数组逆序,修改原数组
- sort
demo.sort(function(val1, val2){
return val1>val2
})
//数组内元素按照从小到大的顺序排列
ES5数组拓展
- isArray
Array.isArray(demo); //判断一个对象是不是数组
- index
demo.indexOf(2); //查找元素2在demo对象中的位置;若没有,则返回-1
- forEach
//遍历数组每一个元素,处理后改变原数组
demo.forEach(function(val, index, array){
array[i] = val + 1;
})
- every 和 some
//相当于对每一个数组的值做一个true or false的逻辑判定。every方法,当每一个元素的判定值都为true的时候,返回值为true;some方法,当存在一个元素的判定值为true的时候,返回值为true
demo.every(function(val, index, array){
return val > 5;
})
demo.some(function(val, index, array){
return val > 5;
})
- map
//遍历数组,返回值组成一个新的数组返回,索引结构与原数组保持一致
demo.map(function(val){
return val * val;
})
- filter
//返回数组的一个子集,如果返回true,则把当前元素加入到返回数组中
demo.filter(function(val){
return val / 2 == 3;
})
- reduce 和 reduceRight
//将数组元素合成一个值,reduce从索引最小值开始,reduceRight反向,还可以添加一个初始值
demo.reduce(function(val1, val2){
return val1 + val2;
})