slice
和 splice
是 JavaScript 中用于操作数组的两个方法,但它们在功能和行为上有显著的区别。让我们分别来看它们的定义和区别。
1. slice()
- 定义:
slice()
方法用于返回数组的一部分,不修改原数组。 - 参数:
slice(start, end)
,返回从索引start
到索引end
(不包括end
)的数组元素。 - 返回值:一个新数组,包含所选的部分。
特点:
- 不修改原数组。
- 返回新数组,原数组保持不变。
例子:
let arr = [1, 2, 3, 4, 5];
let newArr = arr.slice(1, 3); // 从索引 1 到 3(不包括 3)
console.log(newArr); // [2, 3]
console.log(arr); // [1, 2, 3, 4, 5] 原数组没有被修改
2. splice()
- 定义:
splice()
方法用于修改原数组,可以通过删除、替换或添加元素来改变原数组。 - 参数:
splice(start, deleteCount, item1, item2, ...)
:start
:从哪个索引开始修改。deleteCount
:要删除的元素数量。item1, item2, ...
:可选,表示插入的元素。
- 返回值:包含被删除元素的数组,如果没有删除元素则返回空数组。
特点:
- 修改原数组。
- 可以删除、插入或替换数组中的元素。
例子:
let arr = [1, 2, 3, 4, 5];
let removed = arr.splice(1, 2); // 从索引 1 开始,删除 2 个元素
console.log(removed); // [2, 3] 被删除的元素
console.log(arr); // [1, 4, 5] 原数组被修改
你也可以使用 splice()
来插入新元素:
let arr = [1, 4, 5];
arr.splice(1, 0, 2, 3); // 从索引 1 开始,不删除任何元素,插入 2 和 3
console.log(arr); // [1, 2, 3, 4, 5] 原数组被修改
3. 总结 slice()
vs splice()
特性 | slice() | splice() |
---|---|---|
用途 | 返回数组的一个子数组 | 修改原数组,通过删除、替换或插入元素 |
返回值 | 新的子数组,不修改原数组 | 被删除的元素,原数组被修改 |
参数 | slice(start, end) | splice(start, deleteCount, item1, item2, ...) |
对原数组的影响 | 不修改原数组 | 修改原数组 |
总结:
slice()
:用于提取数组的一部分,不会修改原数组,返回一个新数组。splice()
:用于在原数组中删除、添加或替换元素,会修改原数组。
选择使用哪一个方法取决于你是要修改数组本身,还是只需要一个数组的子集。
标签:arr,slice,splice,区别,元素,修改,数组 From: https://blog.csdn.net/DOVISK/article/details/142263166