目录
这两个方法都是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开始删除两个,将0和1截取下来,然后再把5插入到截取的位置,结果如下
简单来说,slice是从哪儿删除到哪儿,splice是从哪删除几个
欢迎指正