方法罗列

方法是否修改原数组返回值
slice包含摘取元素的新数组
toSpliced不包含被删除元素的新数组

slice

获取指定位置的元素,然后将这些元素作为数组返回。

函数签名:
slice([start], [end])
start摘取开始位置
end摘取结束位置

使用示例:浅拷贝

const items = [1, 2, 3]
const nextItems = items.slice()
// [1, 2, 3]

start默认为0end默认为items.length
所以在两个参数都不指定的情况下能够达到浅拷贝数组的效果。

toSpliced

删除指定位置的元素,将剩余的元素作为数组返回。

函数签名:
toSpliced(start, [deleteCount], [item1], [item2], [itemN])
start删除开始位置
deleteCount删除结束位置(deleteCount + start

使用示例:浅拷贝

const items = [1, 2, 3]
const nextItems = items.toSpliced(0, 0)
// [1, 2, 3]

删除起始位置为0,删除元素个数为0,等于没有删除,所以能够达到浅拷贝数组的效果。

toSpliced和slice的差异

toSplicedslice都结果来看,都是从数组中获取一些元素。

slice获取指定范围内的元素。
toSpliced获取排除指定范围内元素后剩下的元素。

其他

splice会修改原数组,产生副作用,所以不予考虑。


热饭班长
3.7k 声望434 粉丝

先去做,做出一坨狗屎,再改进。