splice和slice(每天进步一点点)

本文详细介绍了JavaScript中数组的splice和slice方法。splice用于截取数组并改变原数组,有必选的start参数及可选的deleteCount、插入元素参数,返回截取的新数组。slice从原数组复制元素组成新数组,不改变原数组,参数可选,还可使用call方法绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

splice是数组方法,以为截取数组并且改变原数组

第一个参数start(必须)

可以为正数和复数,若只有一个参数时:如果参数是正数的话,那么从这个数开始截取到这个数组的最后一位例如:

let arr=[1,2,3,4,5]
console.log(arr.splice(1) ) //返回的是截取的新数组([2,3,4,5])
console.log(arr)  //[1]

如果参数是复数的话,那么从这个数开始截取到这个数组的最后一位例如:

let arr=[1,2,3,4,5]
console.log(arr.splice(-1) )  //返回的是截取的数组([5])
console.log(arr)    //[2,3,4,5]
第二个参数deleteCount(可选)

为要截取数组的长度,若加上start大于数组长度的话则截取从start以后的所有元素

let arr=[1,2,3,4,5]
console.log(arr.splice(1,2) )  //返回的是截取的数组([2,3])
console.log(arr)    //[1,4,5]
第三个参数和到第n个参数 item1,item2,item3…(可选)

为要插入的元素,从截取数据的地方插入第三个参数到第n个参数

let arr=[1,2,3,4,5]
console.log(arr.splice(1,2,4,4) )  //返回的是截取的数组([2,3])
console.log(arr)    //[1,4,4,4,5]
返回值:返回的是截取的新数组;即使只截取一个元素,返回的也是一个数组;没截取元素,返回一个空数组

slice从原数组(切片)复制下来一段元素,组成新数组,返回的是这个新数组,不改变原数组

有两个参数,都是可选的
第一个参数start(可选)

如果未定义的话,默认为0,如果定义的话则为开始复制的索引到最后一个元素,如果定义的话有两种情况,第一种大于零:

let arr=[1,2,3,4,5]
console.log(arr.slice() )  //返回的是截取的数组([1,2,3,4,5])
console.log(arr.slice(2) )  //返回的是截取的数组([3,4,5])
console.log(arr)    //[1,2,3,4,5]

第二种小于零,绝对值大于数组长度的话则复制整个数组:

let arr=[1,2,3,4,5]
console.log(arr.slice(-1) )  //返回的是截取的数组([5])
console.log(arr.slice(-6) )  //返回的是截取的数组([1,2,3,4,5])
console.log(arr)    //[1,2,3,4,5]

可以使用的call()方法进行绑定Function.prototype,也可以使用[].slice.call(arguments)代替来减少绑定Array.prototype.slice.call。

let unboundSlice = Array.prototype.slice
let slice = Function.prototype.call.bind(unboundSlice)

function list() {
  return slice(arguments)
}

let list1 = list(1, 2, 3) // [1, 2, 3]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值