splice 和 slice 会改变原数组吗? 怎么删除数组最后一个元素?

结论先行:

splice() 会改变原数组,返回的是改变的内容;

splice() 方法可以删除、插入或者修改数组元素,然后返回被删除的项目。

第一个参数是必填的,表示要操作的起始位置;

第二个参数也是必填的,表示删除的数量

第三个参数是选填的,表示的是插入的新元素

slice() 不会改变原数组,返回一个新的数组。

slice() 方法的作用呢,就是从已有的数组中返回选定的元素,返回一个新的数组。

第一个参数是必填的,表示要选取的起始位置;

第二个参数是选填的,表示选取的结束位置。如果没有指定该参数,那默认是从 start 到数组结束的所有元素。

有 3 种方法可以删除数组的最后一个元素:

① array.pop() 

② array.splice(-1, 1) 

③ delete array[array.length-1] 

1、splice 和 slice 会改变原数组吗?

splice() 会改变原数组,返回的是改变的内容;

splice() 方法可能是数组中的最强大的方法之一了,使用它的形式有很多种,它会向/从数组中添加/删除项目,然后返回被删除的项目

该方法会改变原始数组。

其使用语法如下:arrayObject.splice(index, howmany, item1,..., itemX)

index:必需,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置;
howmany:必需,要删除的项目数量。如果设置为 0,则不会删除项目;
item1,..., itemX:可选,向数组添加的新项目。

从上面参数可知,splice 主要有三种使用形式:
① 删除:

需要给 splice() 传递两个参数,即要删除的第一个元素的位置和要删除的元素的数量;

② 插入:

需要给 splice() 传递至少三个参数,即开始位置、0(要删除的元素数量)、要插入的元素;

③ 替换:

splice() 可以在删除元素的同时在指定位置插入新的元素。同样需要传入至少三个参数,即开始位置、要删除的元素数量、要插入的元素。要插入的元素数量是任意的,不一定和删除的元素数量相等。

      // 删除: ["two","three"]
      let array1 = ["one","two", "three", "four", "five"]; 
      console.log(array1.splice(1, 2)); // ["two", "three"]; 
      console.log(array1) // ["one", "four", "five"]

      // 插入996
      let array2 = ["one","two", "three", "four", "five"];
      console.log(array2.splice(2, 0, 996))  // []
      console.log(array2) // ["one","two", 996, "three", "four", "five"];

      // 替换 ['three']
      let array3 = ["one","two", "three", "four", "five"];
      console.log(array3.splice(2, 1, 996)) // ["three"]
      console.log(array3) // ["one","two", 996, "four", "five"]

slice() 不会改变原数组,会返回一个新的数组。

slice() 方法可从已有的数组中返回选定的元素,返回一个新的数组,包含从 start 到 end(不包括该元素)的数组元素。

该方法并不会修改数组,而是返回一个子数组。

其使用语法如下:arrayObject.slice(start, end)

start:必需,规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推;

end:可选,规定从何处结束选取,该参数是数组片断结束处的数组下标,如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

      let array = ["one", "two", "three", "four"];
      console.log(array.slice(0));  // ["one", "two", "three", "four"]
      console.log(array.slice(2, 3)); // ["three"]

2、怎么删除数组最后一个元素?

有三种方法可以删除数组的最后一个元素

① array.pop() 

② array.splice(-1, 1) 

③ delete array[array.length-1] 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值