slice和splice的区别

在JavaScript中,slicespliceArray 对象的两个方法,它们都有助于操作数组,但它们的功能和用途有所不同。

1. slice

slice 方法用于从已有的数组返回选定的元素的一个浅拷贝到一个新数组对象中,而不改变原数组。

语法
array.slice(start, end)
参数
  • start (可选): 开始截取的位置,如果是负数,表示从数组结尾开始计算的位置。
  • end (可选): 结束截取的位置(不包括此位置),如果是负数,表示从数组结尾开始计算的位置。
返回值
  • 返回一个新的数组,包含从 startend 之间(不包括 end)的元素。
示例
const numbers = [1, 2, 3, 4, 5];
const sliced = numbers.slice(1, 3); // 截取索引1到2之间的元素
console.log(sliced); // 输出: [2, 3]
console.log(numbers); // 输出: [1, 2, 3, 4, 5] (原数组不变)

2. splice

splice 方法用于删除、替换或添加数组中的元素。它会直接修改原数组,并返回一个包含被删除元素的新数组。

语法
array.splice(start, deleteCount[, item1[, item2[, ...[, itemN]]]])
参数
  • start: 必须,从该位置开始修改数组。
  • deleteCount: 必须,要删除的元素数量。如果设置为 0,则不会删除任何元素。
  • item1, item2, ..., itemN: 可选,从 start 位置开始插入的新元素。
返回值
  • 返回一个数组,包含被删除的元素。
示例
  • 删除元素

    const numbers = [1, 2, 3, 4, 5];
    const removed = numbers.splice(1, 2); // 从索引1开始删除2个元素
    console.log(removed); // 输出: [2, 3]
    console.log(numbers); // 输出: [1, 4, 5] (原数组被修改)
    
  • 替换元素

    const numbers = [1, 2, 3, 4, 5];
    const replaced = numbers.splice(1, 2, 'a', 'b'); // 从索引1开始删除2个元素,并插入'a'和'b'
    console.log(replaced); // 输出: [2, 3]
    console.log(numbers); // 输出: [1, 'a', 'b', 4, 5] (原数组被修改)
    
  • 添加元素

    const numbers = [1, 2, 3, 4, 5];
    const added = numbers.splice(2, 0, 'a', 'b'); // 从索引2开始添加元素,不删除任何元素
    console.log(added); // 输出: []
    console.log(numbers); // 输出: [1, 2, 'a', 'b', 3, 4, 5] (原数组被修改)
    

总结

  • slice 用于从数组中提取一部分元素,并返回一个新的数组。原数组保持不变。
  • splice 用于直接修改数组,可以用来删除、替换或添加元素。它会改变原数组,并返回一个包含被删除元素的新数组。
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值