js splice实现
使用 splice 方法修改数组
Array.prototype.splice() 是 JavaScript 中用于修改数组的强大方法,可以删除、替换或插入元素。其语法如下:
array.splice(startIndex, deleteCount, item1, item2, ..., itemN)
- startIndex:开始修改的索引位置。
- deleteCount:要删除的元素数量(设为
0则不删除)。 - item1, item2, ..., itemN:可选参数,表示要插入的元素。
删除元素
通过指定 startIndex 和 deleteCount 可以删除数组中的元素:
const fruits = ['apple', 'banana', 'cherry', 'date'];
fruits.splice(1, 2); // 从索引 1 开始删除 2 个元素
console.log(fruits); // 输出: ['apple', 'date']
插入元素
将 deleteCount 设为 0 并传入要插入的元素:
const numbers = [1, 2, 5, 6];
numbers.splice(2, 0, 3, 4); // 在索引 2 处插入 3 和 4
console.log(numbers); // 输出: [1, 2, 3, 4, 5, 6]
替换元素
通过同时指定 deleteCount 和插入的元素可以实现替换:
const colors = ['red', 'green', 'blue'];
colors.splice(1, 1, 'yellow'); // 替换索引 1 的元素为 'yellow'
console.log(colors); // 输出: ['red', 'yellow', 'blue']
返回值
splice 方法返回被删除的元素组成的数组:

const letters = ['a', 'b', 'c', 'd'];
const removed = letters.splice(1, 2);
console.log(removed); // 输出: ['b', 'c']
console.log(letters); // 输出: ['a', 'd']
注意事项
- 如果
startIndex为负数,表示从数组末尾开始计算(例如-1是最后一个元素)。 - 如果
deleteCount大于剩余元素数量,会删除从startIndex开始的所有元素。 - 不传
deleteCount时,默认删除从startIndex到末尾的所有元素。






