0
点赞
收藏
分享

微信扫一扫

slice()和splice()

云朵里的佛光 2022-04-05 阅读 86

目录

slice()

splice()

对参数的另一种理解


这两个方法都是js中截取数组的方法,那么它们两个有什么区别呢?

slice()

slice方法,可以传入两个参数,第一个参数表示起始位置,第二个参数表示终止位置,即slice(start,end),但是注意,这里是左闭右开,也就是说截取到的数组元素下标包括start,不包括end,这个方法不会改变原数组

    let arr = [0,1,2,3,4]
    let newArr = arr.slice(0,2)
    console.log("截取下来的是:" + newArr)
    console.log("原数组是:" + arr)

上述代码就是说,从arr中下标为0的开始,截取到下标为2的,但不包括下标为2的,所以结果是

可以看到,原数组没有变化

splice()

splice方法可传入的参数有三个,第一个是起始位置(必需),第二个是终止位置,第三个是在原数组中截取下来的位置添加什么,注意,这个方法会改变原数组

先看一个简单的

    let arr = [0,1,2,3,4]    
    let newArr2 = arr.splice(0,2)
    console.log("截取下来的是:" + newArr2)
    console.log("原数组是:" + arr)

执行结果如下

可以看到,原数组改变了 

再看一个具有添加项的

    let arr = [0,1,2,3,4]
    let newArr2 = arr.splice(0,2,5)
    console.log("截取下来的是:" + newArr2)
    console.log("原数组是:" + arr)

这段代码的意思就是,先将0和1截取下来,然后再把5插入到截取的位置,结果如下

对参数的另一种理解

其实除了左闭右开是一种理解之外,个人更喜欢将第二个参数理解为截取多少个。例如上面的slice(0,2)和splice(0,2),按照左闭右开理解为从0开始截取,截取到2但不能包括2。而按照截取多少个理解,就是从0开始,截取2个,也就是0和1

欢迎指正

举报

相关推荐

0 条评论