splice
是 JavaScript 数组的一个方法,用于在任何位置添加/删除项目,然后返回被删除的项目。这个方法会改变原始数组。
splice()
方法的语法如下:
array.splice(index, howmany, item1, ....., itemX)
index
:必需。整数,规定添加/删除项目的位置,使用负数可从数组尾部开始计算位置。howmany
:必需。要删除的项目数量。如果设置为 0,则不会删除项目,只会在指定位置添加新元素。item1, ..., itemX
:可选。向数组添加的新项目。如果不指定任何项目,则 splice()
只会删除数组元素。假设我们有一个数组 fruits = ['apple', 'banana', 'cherry', 'durian', 'elderberry']
。
如果我们想删除 'cherry' 和 'durian',可以这样做:
let removed = fruits.splice(2, 2);
console.log(fruits); // ['apple', 'banana', 'elderberry']
console.log(removed); // ['cherry', 'durian']
splice()
会改变原始数组?splice()
方法的设计初衷就是为了直接修改原始数组。如果你不想改变原始数组,可以先创建一个数组的副本,然后在副本上调用 splice()
。
使用 slice()
方法创建数组的副本,然后在副本上调用 splice()
。
let fruits = ['apple', 'banana', 'cherry', 'durian', 'elderberry'];
let fruitsCopy = fruits.slice();
let removed = fruitsCopy.splice(2, 2);
console.log(fruits); // 原始数组不变 ['apple', 'banana', 'cherry', 'durian', 'elderberry']
console.log(fruitsCopy); // ['apple', 'banana', 'elderberry']
console.log(removed); // ['cherry', 'durian']
如果你想删除数组中满足某个条件的所有元素,可以使用 filter()
方法,而不是 splice()
,因为 splice()
需要知道要删除元素的确切位置。
例如,删除数组中所有的 'banana':
let fruits = ['apple', 'banana', 'cherry', 'banana', 'elderberry'];
fruits = fruits.filter(fruit => fruit !== 'banana');
console.log(fruits); // ['apple', 'cherry', 'elderberry']
注意,这里我们没有使用 splice()
,而是使用了 filter()
来创建一个新数组,其中不包含要删除的元素。
没有搜到相关的沙龙