splice和slice的区别
splice和slice是js数组中常见的方法、虽然只有一个单词之差,但是却有着很大的不同。
splice用于从一个数组中进行 *添加、删除、替换*元素、它可以接收三个参数。如下:
splice(start、deleteCount、item1,item2…)
start(必需) : 表示从哪个位置(索引)开始删除或者添加元素
deleteCount(可选) : 表示要删除的元素数量。如果设置为0,则不会删除任何元素
item1,item2…(可选): 表示要添加到数组里的新元素
如果只传入start参数,则方法将从该位置开始删除所有后续元素
如果传入了deleteCount参数,则方法将从start位置开始删除指定数量的元素
如果还传入了item1,…元素,则方法将从start位置开始删除指定数量元素,并将新元素插入到该位置和后续位置之间
例:使用 splice() 方法删除数组中的一个元素
const arr = [1, 2, 3, 4, 5];
arr.splice(2, 1); // 删除从索引为 2 的元素开始的 1 个元素
console.log(arr); // 输出 [1, 2, 4, 5]
例:使用 splice() 方法向数组中插入新元素
const arr = [1, 2, 3, 4, 5];
arr.splice(2, 0, 'a', 'b'); // 从索引为 2 的位置开始插入 'a' 和 'b'
console.log(arr); // 输出 [1, 2, 'a', 'b', 3, 4, 5]
注:splice()是对原数组进行了修改
slice用于对数组进行截取,可以接收两个参数,如果只传入一个参数,则表示从开始位置截取到数组的末尾。如下:
slice(start,end)
start:开始位置的索引
end:结束位置的索引(但是不包含该索引位置的元素)
例:使用 slice() 方法对数组截取
var arr = ['a','b','c','d','e']
var newArr = arr.slice(0,3) // 不包含索引值为3以后的元素
console.log(newArr); // ['a','b','c']
注:slice()从一个数组中抽取一段子数组,返回一个新的数组,并不会修改原数组