splice() 是 javascript 中能直接修改原数组并实现删除、插入、替换操作的方法,返回被删除元素;参数为起始索引、删除个数、插入元素,支持负索引与展开语法,使用时需注意原数组变更及嵌套插入等细节。

splice() 是 JavaScript 数组中功能最强大的原生方法之一,它能直接修改原数组,实现删除、插入、替换三种操作,且返回被删除的元素(或空数组)。关键在于理解它的三个核心参数:起始索引、删除个数、插入元素。
删除元素:指定位置删掉若干项
只传前两个参数时,splice(start, deleteCount) 会从 start 索引开始,删除 deleteCount 个元素,并返回这些被删元素组成的数组。
- 索引支持负数(如
-1表示最后一个元素) - 若
deleteCount为 0,不删任何元素,但会返回空数组(此时常配合插入使用) - 若省略
deleteCount或设为大于剩余长度的值,则从start删到末尾
例如:
const arr = [1, 2, 3, 4, 5];<br> const removed = arr.splice(1, 2); // 从索引 1 开始删 2 个 → [2, 3]<br> console.log(arr); // [1, 4, 5]<br> console.log(removed); // [2, 3]
插入元素:在指定位置添加新项
当 deleteCount 设为 0 时,splice(start, 0, ...items) 就是在 start 位置插入一个或多个元素,不删除任何内容。
- 插入位置是“索引之前”,即新元素会出现在原索引位置上
- 支持展开语法(
...items)批量插入,比push()或unshift()更灵活
例如:
const arr = ['a', 'c'];<br> arr.splice(1, 0, 'b', 'x'); // 在索引 1 处插入 'b' 和 'x'<br> console.log(arr); // ['a', 'b', 'x', 'c']
替换元素:删旧添新,一步到位
把删除和插入结合:先删掉若干项,再在同一位置插入新项。这是 splice() 最典型的“改”操作。
- 相当于“用新元素覆盖旧位置”,原数组长度可能变长、变短或不变
- 返回的是被删除的旧元素,不是新插入的
例如:
const arr = [10, 20, 30, 40];<br> const replaced = arr.splice(1, 2, 'hello', 'world'); // 删索引 1~2 的 20、30,插入 'hello'、'world'<br> console.log(arr); // [10, 'hello', 'world', 40]<br> console.log(replaced); // [20, 30]
常见易错点与实用技巧
实际使用时要注意几个细节,避免意外行为:
-
splice()总是改变原数组,如果不想修改原数组,需先用slice()或扩展运算符复制一份 - 插入多个元素时,不要把数组整体传入,否则会插入一个嵌套数组;应使用展开符:
splice(i, 0, ...newItems) - 删除后索引会自动前移,循环中边遍历边
splice()需谨慎(建议倒序遍历或用filter()替代) - 想用
splice()实现类似pop()或shift(),可分别写成arr.splice(-1, 1)和arr.splice(0, 1)
不复杂但容易忽略。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











