Array类型传送门:
声明与属性
添加与删除
数组项操作和位置查找
重排序
迭代与归并
一. 复制数组
1. concat()方法
会创建新的副本操作并返回。
- 无参数时复制数组并返回副本
var colors = ["red","green","blue"];
var colors1 = colors.concat();
alert(colors1); //red,green,blue
- 有参数时将参数依次添加到数组末尾,参数可以是值或数组
var colors = ["red","green","blue"];
var colors2 = colors.concat("yellow",["black","brown"]);
alert(colors2); //red,green,blue,yellow,black,brown
2. slice()方法
会创建新的副本操作并返回。
基于当前数组的一项或多项创建一个新数组,若只是一个参数,则表示起始位置到数组末尾的所有项,若是两个参数,则表示起始位置到结束位置的所有项。
- 第一个参数:表示起始位置(包含)
- 第二个参数(可选):表示结束位置(不包含)
var colors = ["red","green","blue","yellow","black"];
var colors1 = colors.slice(1); //green,blue
var colors2 = colors.slice(1,4); //green,blue,yellow
3. splice()方法
对原数组操作并返回删除项的值。
可以根据参数完成对数组的任意项删除、指定位置插入和替换操作。
注意返回值是删除数组项的值
- 第一个参数:表示起始位置(包含)
- 第二个参数:表示要删除的项数
- 第三个及以后的参数(可选):表示从删除位置处要添加项的值
var colors = ["red","green","blue"];
var removed = colors.splice(0,1);
alert(colors); //green,blue
alert(removed); //red
var insert = colors.splice(1,0,"yellow");
alert(colors); //green,blue,yellow
alert(insert); //返回空数组
var change = colors.splice(1,2,"black");
alert(colors); //green,black
alert(change); //blue,yellow
二. 根据值查找数组项位置
indexOf()与lastIndexOf()方法,都接收两个参数,indexOf()表示从数组开头(或查找起始位置)向后找,lastIndexOf()表示从数组末尾(或查找起始位置)向前找。
位置均从左往右计数
匹配过程默认用全等操作符 === 类型须相同
- 第一个参数:要查找项的值
- 第二个参数(可选):开始查找的起始位置
var numbers = [1,2,3,4,5,4,3,2,1];
alert(numbers.indexOf(4)); //3
alert(numbers.lastIndexOf(4)); //5
alert(numbers.indexOf(4,4)); //5
alert(numbers.lastIndexOf(4,4)); //3