JavaScript中数组指定位置增删改用splice()方法:设deleteCount为0可插入元素,设大于0可删除元素,同时传入新元素可实现边删边插,该方法直接修改原数组且索引越界不报错。

JavaScript 中在数组指定位置插入或删除元素,主要靠 splice() 方法实现。它既能增、又能删,还能边删边插,是操作数组“中间位置”的核心工具。其他方法(如 push/pop/shift/unshift)只能操作首尾,不满足“指定位置”需求。
用 splice() 在任意下标插入元素
语法:arr.splice(startIndex, deleteCount, item1, item2, ...)
插入时,把 deleteCount 设为 0,后面跟要插入的元素即可。
- startIndex:从哪个索引开始操作(负数表示从末尾倒数,如 -1 是最后一个元素前)
- deleteCount = 0:表示不删除任何元素
- item1, item2...:要插入的一个或多个新元素
示例:
立即学习“Java免费学习笔记(深入)”;
let arr = ['a', 'c', 'd']; arr.splice(1, 0, 'b'); // 在索引 1 处插入 'b' console.log(arr); // ['a', 'b', 'c', 'd'] arr.splice(2, 0, 'x', 'y'); // 在索引 2 处插入两个元素 console.log(arr); // ['a', 'b', 'x', 'y', 'c', 'd']
用 splice() 在任意下标删除元素
只需指定 startIndex 和要删的个数 deleteCount,不传新元素即可。
- deleteCount > 0:从 startIndex 开始删掉对应数量的元素
- deleteCount 省略或为 0:不删元素(只插入)
- deleteCount 超出剩余长度:删到数组末尾为止
示例:
立即学习“Java免费学习笔记(深入)”;
let arr = ['a', 'b', 'c', 'd', 'e']; arr.splice(2, 1); // 删除索引 2 处的 1 个元素(即 'c') console.log(arr); // ['a', 'b', 'd', 'e'] arr.splice(0, 2); // 删除开头两个 console.log(arr); // ['d', 'e'] arr.splice(-1, 1); // 删除最后一个(-1 表示倒数第一个位置) console.log(arr); // ['d']
边删边插:splice() 的完整能力
这是 splice() 最强大的用法:在删掉若干元素的同时,在原位置插入新元素。
- 例如:替换某一段 ——
splice(start, countToReplace, newItem1, newItem2...) - 返回值是被删除的元素组成的数组(可忽略,也可用于记录)
示例:
立即学习“Java免费学习笔记(深入)”;
let arr = [1, 2, 3, 4, 5]; let removed = arr.splice(1, 2, 'X', 'Y'); // 删掉索引 1、2 的两个元素,插入 'X','Y' console.log(arr); // [1, 'X', 'Y', 4, 5] console.log(removed); // [2, 3]
注意点和常见误区
- 索引越界不会报错:startIndex 超出范围时,splice 会自动调整(太大则插到末尾,太小则插到开头)
- 原数组被直接修改:splice 是“就地操作”,不返回新数组(想保持原数组请先用 slice() 或 [...arr] 拷贝)
- 不要混淆 splice 和 slice:slice() 是只读截取,返回新数组,不改变原数组
- 若需频繁在头部/尾部操作,优先用
unshift()/shift()或push()/pop(),性能更好


















