splice( 开始的位置,要删除的个数 [,插入的项1 ] [,插入的项2 ][...] )
直接对原数组进行处理,返回一个数组,包含从原数组中删除的项。
1、删除任意位置项 ------ 传入两个参数,第二个参数不为0;
2、从任意位置添加新项 ----- 传入三个及以上参数,第二个参数为0;
3、替换任意位置项 ----- 传入三个及以上参数,第二个参数不为0。
var colors = ["red", "green", "blue"];
var removed = colors.splice(0,1); //删除第一项
alert(colors); //green,blue
removed = colors.splice(1, 0, "yellow", "orange"); //从位置1开始插入两项
alert(colors); //green,yellow,orange,blue
removed = colors.splice(1, 1, "red", "purple"); //将第二项替换为传入的两项
alert(colors); //green,red,purple,orange,blue
如果只传入一个参数,表示数组从该位置开始,截取到数组末尾,返回截取的数组,原数组变为剩余的部分
var colors = ["red", "green", "blue","red", "green", "blue","red", "green", "blue"];
var newColors = colors.splice(4);
alert(newColors) //["green", "blue", "red", "green", "blue"]
alert(colors) //["red", "green", "blue", "red"]
对比用两个参数删除数组的做法
var colors = ["red", "green", "blue","red", "green", "blue","red", "green", "blue"];
var newColors = colors.splice(0,4)
alert(newColors) //["red", "green", "blue", "red"]
alert(colors) //["green", "blue", "red", "green", "blue"]
上面的例子说明,在使用splice截取数组的时候,传入的参数不同,要注意需要取返回值,还是取改变后的原数组。