数组 splice 方法
splice() 用于修改数组,可以删除、插入或替换元素。会修改原数组。
基本语法
array.splice(start, deleteCount, ...items)
start: 开始修改的索引deleteCount: 要删除的元素数量items: 要插入的元素(可选)
删除元素
const arr = [1, 2, 3, 4, 5];
// 从索引 2 开始删除 2 个元素
const removed = arr.splice(2, 2);
console.log(arr); // [1, 2, 5]
console.log(removed); // [3, 4]
插入元素
const arr = [1, 2, 5];
// 在索引 2 处插入新元素(不删除)
arr.splice(2, 0, 3, 4);
console.log(arr); // [1, 2, 3, 4, 5]
替换元素
const arr = [1, 2, 3, 4, 5];
// 从索引 2 开始替换 2 个元素
arr.splice(2, 2, 'a', 'b');
console.log(arr); // [1, 2, 'a', 'b', 5]
删除最后 N 个元素
const arr = [1, 2, 3, 4, 5];
// 删除最后 2 个
arr.splice(-2);
console.log(arr); // [1, 2, 3]
实用示例
const arr = ['a', 'b', 'c', 'd', 'e'];
// 删除第一个元素
arr.splice(0, 1);
// 删除最后一个元素
arr.splice(-1, 1);
// 在开头插入
arr.unshift('new');
// 或用 splice
arr.splice(0, 0, 'new');
// 在末尾插入
arr.push('end');
// 或用 splice
arr.splice(arr.length, 0, 'end');
// 删除中间元素
const index = arr.indexOf('c');
if (index > -1) {
arr.splice(index, 1);
}
注意事项
const original = [1, 2, 3, 4, 5];
// splice 修改原数组
const result = original.splice(1, 2);
console.log(original); // [1, 4, 5] - 原数组被修改
console.log(result); // [2, 3] - 返回被删除的元素
// 如果需要保留原数组,先复制
const arr = [1, 2, 3, 4, 5];
const copy = [...arr];
copy.splice(1, 2);
console.log(arr); // [1, 2, 3, 4, 5]
console.log(copy); // [1, 4, 5]