一、在js中,splice()和slice是两个非常常见的数组方法。
1.splice()方法改变了原始的数组,它可以删除或者替换数组中的元素,并且能够在指定位置插入新的元素。这个方法会修改原始数组并返回被删除或被替换元素组成的一个新数组。
const months = ['Jan', 'March', 'April', 'June'];
//新增元素
let arr = months.splice(1, 0, 'Feb'); // 在索引为 1 的位置插入'Feb'
console.log(arr);//[]新增元素返回的是一个空数组
console.log(months); // ["Jan", "Feb", "March", "April", "June"]
//替换元素
let newArr = months.splice(4, 1, 'May'); // 替换索引为 4 的元素为'May'
console.log(newArr);//['June'] 返回被替换的元素组成的新数组
console.log(months); // ['Jan', 'Feb', 'March', 'April', 'May']
//删除元素
let val = months.splice(1, 1)//指定在下标为1的位置删除一个元素
console.log(val);//['Feb'] 返回被删除的元素组成的新数组
console.log(months);//['Jan', 'March', 'April', 'May']//改变后的原数组
2.slice()方法不会修改原始数组,它从原始数组中提取出指定的元素,生成一个新的数组,而原始数组则保持不变。
const arr = ['a', 'b', 'c', 'd', 'e'];
console.log(arr.slice(1, 3)); // ["b", "c"], 返回从索引 1 到索引 3 之间(不包括索引 3)的元素
console.log(arr); // ["a", "b", "c", "d", "e"], 原始数组未发生变化
因此,splice()和slice()两个方法在用途上是有较大差别的。splice()主要用于修改原始数组,而slice()则用于从原始数组中提取需要的元素。