Array.prototype.splice()
是 JavaScript 数组的核心方法,用于在指定位置添加/删除元素,并返回被删除的元素,同时直接修改原数组。其语法为:
array.splice(startIndex, deleteCount, item1, item2, ...)
startIndex
:操作起始位置(索引从 0 开始)deleteCount
:要删除的元素数量(若为 0 则不删除)item1, item2...
:要添加的新元素(可选)let fruits = ['', '', '', ''];
let removed = fruits.splice(1, 2); // 从索引1开始删除2个元素
console.log(fruits); // 输出: ['', ''] (原数组被修改)
console.log(removed); // 输出: ['', ''] (返回被删除元素)
let colors = ['red', 'green', 'blue'];
colors.splice(1, 0, 'yellow', 'purple'); // 在索引1处添加元素
console.log(colors);
// 输出: ['red', 'yellow', 'purple', 'green', 'blue']
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] (被替换的元素)
let arr = [1, 2, 3, 4, 5];
arr.splice(-2, 1); // 倒数第2位开始删除1个元素
console.log(arr); // 输出: [1, 2, 3, 5]
slice()
不同,splice()
直接改变原数组startIndex
可为负数(从末尾倒数)⚠️ 注意:当
deleteCount
大于剩余元素数时,会删除从起始位置到末尾的所有元素。
方法 | 修改原数组 | 返回内容 | 主要用途 |
---|---|---|---|
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]