JavaScript中.splice()的用法

JavaScript Array splice() 方法详解

Array.prototype.splice() 是 JavaScript 数组的核心方法,用于在指定位置添加/删除元素,并返回被删除的元素,同时直接修改原数组。其语法为:

array.splice(startIndex, deleteCount, item1, item2, ...)
参数说明:
  • startIndex:操作起始位置(索引从 0 开始)
  • deleteCount:要删除的元素数量(若为 0 则不删除)
  • item1, item2...:要添加的新元素(可选)

使用示例

1. 删除元素
let fruits = ['', '', '', ''];
let removed = fruits.splice(1, 2);  // 从索引1开始删除2个元素

console.log(fruits);  // 输出: ['', ''] (原数组被修改)
console.log(removed); // 输出: ['', ''] (返回被删除元素)
2. 添加元素
let colors = ['red', 'green', 'blue'];
colors.splice(1, 0, 'yellow', 'purple'); // 在索引1处添加元素

console.log(colors); 
// 输出: ['red', 'yellow', 'purple', 'green', 'blue']
3. 替换元素
let numbers = [10, 20, 30, 40];
let replaced = numbers.splice(2, 1, 99); // 将索引2的元素替换为99

console.log(numbers);  // 输出: [10, 20, 99, 40]
console.log(replaced); // 输出: [30] (被替换的元素)
4. 删除末尾元素
let arr = [1, 2, 3, 4, 5];
arr.splice(-2, 1); // 倒数第2位开始删除1个元素

console.log(arr); // 输出: [1, 2, 3, 5]

关键特性

  1. 修改原数组:与 slice() 不同,splice() 直接改变原数组
  2. 负索引支持startIndex 可为负数(从末尾倒数)
  3. 返回被删除元素:始终返回数组(无删除时返回空数组)
  4. 高效操作:适合需要同时添加/删除的场景

⚠️ 注意:当 deleteCount 大于剩余元素数时,会删除从起始位置到末尾的所有元素。


与 slice() 对比

方法 修改原数组 返回内容 主要用途
splice() 被删除的元素 添加/删除元素
slice() 新数组(子数组) 提取子数组
// 示例对比
let a = [1,2,3];
a.splice(0,1);    // 返回 [1], a变为[2,3]
let b = [1,2,3];
b.slice(0,1);     // 返回 [1], b仍为[1,2,3]

你可能感兴趣的:(JavaScript中.splice()的用法)