splice
和slice
splice
方法是 JavaScript 数组对象的一个方法,用于修改数组的内容。它可以实现删除、插入和替换数组中的元素,其语法如下:
array.splice(start, deleteCount, item1, item2, ...)
start
: 必需。表示修改数组的起始位置的索引。如果是负数,则表示从数组末尾开始算起的位置(例如,-1 表示最后一个元素)。deleteCount
: 可选。表示要删除的元素数量。如果省略或者超出数组末尾,则删除从start
索引开始到数组末尾的所有元素。item1, item2, ...
: 可选。要添加到数组的新元素。如果省略,则splice
只会删除元素。
splice
方法会修改原始数组,并返回包含被删除元素的新数组(如果有)。如果没有删除任何元素,则返回一个空数组。
下面是 splice
方法的一些常见用法:
- 删除元素:
var array = [1, 2, 3, 4, 5];
array.splice(2, 1); // 从索引 2 开始删除 1 个元素
console.log(array); // 输出: [1, 2, 4, 5]
- 插入元素:
var array = [1, 2, 3, 4, 5];
array.splice(2, 0, 'a', 'b'); // 从索引 2 开始插入 'a' 和 'b'
console.log(array); // 输出: [1, 2, 'a', 'b', 3, 4, 5]
- 替换元素:
var array = [1, 2, 3, 4, 5];
array.splice(2, 2, 'a', 'b'); // 从索引 2 开始替换 2 个元素为 'a' 和 'b'
console.log(array); // 输出: [1, 2, 'a', 'b', 5]
- 删除并获取被删除的元素:
var array = [1, 2, 3, 4, 5];
var removed = array.splice(2, 2); // 从索引 2 开始删除 2 个元素
console.log(removed); // 输出: [3, 4]
console.log(array); // 输出: [1, 2, 5]
如果你只传递 splice
方法的第一个参数,它将从指定位置开始删除后面的所有元素,并返回被删除的元素组成的新数组。
let arr = [1, 2, 3, 4, 5];
let removed = arr.splice(2);
console.log(removed); // 输出: [3, 4, 5]
console.log(arr); // 输出: [1, 2]
对于 slice
方法,如果你只传递一个参数,它会从指定位置开始提取到数组的末尾,并返回一个新数组。
let arr = [1, 2, 3, 4, 5];
let newArr = arr.slice(2);
console.log(newArr); // 输出: [3, 4, 5]
console.log(arr); // 输出: [1, 2, 3, 4, 5],原数组不变