slice 和 splice 的区别

slicesplice 是 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():用于在原数组中删除、添加或替换元素,会修改原数组

选择使用哪一个方法取决于你是要修改数组本身,还是只需要一个数组的子集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值