跳到主要内容

数组 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]