浅谈splice( )与slice( )

发布时间 2023-08-02 15:59:16作者: Wanker

1、splice( )

概念:splice( )用于修改原始数组,它可以删除、插入、替换数组的元素,并返回被删除的元素组成的新数组。

语法:splice(start,deleteCount,item1,item2,itemN)

start:开始位置,规定添加/删除的起始位置。从 0 开始计算的索引,表示要开始改变数组的位置

deleteCount:移除的数量。要删除的项目数量。如果设置为 0,则不会删除项目。

item:替换的元素,从数组中移除一个或多个,并用新的item替换。

    let arr = [1, 3, 4, 5, 7, 8, 9, 6];
      // 从下标为2的元素开始截取,截取3个元素
      let result = arr.splice(2, 3);
      // 输出结果:[4, 5, 7]
      console.log(result);
      // 从下标为-3的元素开始截取,截取2个元素
      let result1 = arr.splice(-3, 2);
      // 输出结果为:[8, 9]
      console.log(result1);

2、slice( )

概念:slice( )用于创建原始数组的一个浅拷贝副本,它可以通过指定起始和结束位置来选取数组的一部分,并返回选取的元素组成的新数组。

语法:slice(start,end)  

start:提取起始处的索引,规定从何处开始选取,默认是从下标0开始。如果是负数,则从末尾开始。也就是说 -1 指最后一个元素,-2 指倒数第二个元素,以此类推。

end:提取终止处的索引,规定从何处结束选取。该参数是数组片段结束处的数组下标,如果省略则一直截取到数组末尾。 

 let arr = [1, 2, 3, 5, 2, 3, 4, 4, 1, 2];
      // 从下标为1的元素开始截取,结束下标为4的元素
      let result = arr.slice(1, 4);
      // 输出结果为:[2, 3, 5]
      console.log(result);
      // 从下标为-3的元素开始截取,结束下标为-1的元素
      let result1 = arr.slice(-3, -1);
      // 输出的结果为:[4,1]
      console.log(result1);

注意:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

3、区别

相同点:都可以用于数组元素的截取

不同点:

① splice改变原数组,slice不改变原数组;

② splice还可以实现添加、删除操作;

③ splice可以传入3个参数,而slice只能传入2个参数。