slice
- 基于当前数组中的一或多个项创建一个新数组
- 可以接受一或两个参数,即要返回项的起始和结束位置,但不包括结束位置
- 在只有一个参数的情况下,返回从该参数指定位置开始到当前数组末尾的所有项
- 不会影响原始数组
var colors = ["red", "green", "blue", "yellow", "purple"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1,4);
console.log(colors); // ["red", "green", "blue", "yellow", "purple"]
console.log(colors2); // ["green","blue","yellow","purple"]
console.log(colors3); // ["green","blue","yellow"]
如果参数中有一个负数,则用数组长度加上该数来确定相应的位置。例如,在一个包含5项的数组上调用
slice(-2,-1)
与调用slice(3,4)
得到的结果相同。如果结束位置小于起始位置,则返回空数组。
splice
- 主要用途是向数组的中部插入元素
- 会影响原始数组
删除
要实现 splice
的删除功能,最多只能传两个参数
一个参数
删除从参数位置到当前数组末尾的所有项
var colors = ["red", "green", "blue", "black"];
var spliceColors = colors.splice(0)
console.log(colors) // []
console.log(spliceColors) // ["red", "green", "blue", "black"]
两个参数
起始位置和要删除元素的数量
var colors = ["red", "green", "blue", "black"];
var spliceColors = colors.splice(0,2)
console.log(colors) // ["blue", "black"]
console.log(spliceColors) // ["red", "green"]
插入
要实现 splice
的插入功能,至少传3个参数:起始位置、0(要删除元素的数量)和要插入的元素。如果要插入多个元素,可以再传入第四、第五,以至任意多个元素
var colors = ["red", "green", "blue", "black"];
var spliceColors = colors.splice(1,0,'yellow','white')
console.log(colors) // ["red", "yellow", "white", "green", "blue", "black"]
console.log(spliceColors) // []
替换
splice
可以向指定位置插入任意数量的项,且同时删除任意数量的项。要实现 splice
的替换功能,只需指定3个参数:起始位置、要删除元素的数量和要插入的元素。插入的项数不必与删除的项数相等
var colors = ["red", "green", "blue", "black"];
var spliceColors = colors.splice(1,2,'yellow','white')
console.log(colors) // ["red", "yellow", "white", "black"]
console.log(spliceColors) // ["green", "blue"]
网友评论