splice和slice区别

1.splice

splice() 方法用于添加/删除数组中的元素,然后返回被删除的元素。这个方法会改变原始数组。

arr.splice(start[, deleteCount[, item1[, item2[, ...]]]])
  • start(必需)

指定修改的开始位置(从0开始计数)。如果超出了数组的界限,则从数组末尾开始添加内容;如果是负值,则表示从数组尾部开始算起的位置。

  • deleteCount(可选)

整数,表示要移除的数组元素的个数。如果设置为 0,则不会移除元素。

  • item1, item2, ...(可选)

要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 只删除数组元素。

  • 返回值

    返回一个新数组,包含被删除的元素。如果没有删除任何元素,则返回空数组。

2.slice

slice() 方法返回一个新的数组对象,这一对象是一个由开始到结束(不包括结束)选择的、由原数组的浅拷贝构成。原始数组不会被改变

arr.slice([begin[, end]])
  • begin(可选)

提取起始处的索引(从0开始),从该索引开始提取原数组元素。如果该参数是负数,则表示从数组尾部开始算起的位置。

  • end(可选)

提取结束处的索引(从0开始),在该索引处停止提取原数组元素。但不包括该索引的元素。如果该参数是负数,则表示从数组尾部开始算起的位置。

如果省略 begin,则 slice() 将从索引 0 开始。如果省略 end,则 slice() 会一直提取到数组末尾

  • 返回值

返回一个新的数组对象,包含从 begin 到 end(不包括 end)选择的、原数组的浅拷贝。

3.二者区别

  1. 对原数组的影响
    • splice:会改变原数组。它可以通过删除或替换现有元素,或者原地添加新的元素来修改数组。
    • slice:不会改变原数组。它只是返回由start和end决定的一个浅拷贝的新数组。
  2. 参数数量
    • splice:可以接收三个参数。它们分别是:
      • start:指定修改的开始位置。
      • deleteCount:要移除的数组元素的个数。
      • item1, item2, ...:要添加进数组的元素。
    • slice:接收两个参数。它们分别是:
      • start:起始索引,从该索引提取原数组元素。
      • end:结束索引,在该索引结束提取原数组元素(不包含end索引的元素)。
  3. 返回值
    • splice:返回被删除的元素组成的数组。如果没有删除任何元素,则返回空数组。
    • slice:返回一个新的数组对象,这个数组包含由开始到结束(不包括结束)选择的、原数组的浅拷贝。
  4. 用途
    • splice:主要用于修改数组内容,如添加、删除或替换元素。
    • slice:主要用于提取数组的一部分,生成新的数组对象,而不改变原数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值