方法羅列
| 方法 | 是否修改原數組 | 返回值 |
|---|---|---|
| slice | 否 | 包含摘取元素的新數組 |
| toSpliced | 否 | 不包含被刪除元素的新數組 |
slice
獲取指定位置的元素,然後將這些元素作為數組返回。
函數簽名:
slice([start], [end])
start摘取開始位置
end摘取結束位置
使用示例:淺拷貝
const items = [1, 2, 3]
const nextItems = items.slice()
// [1, 2, 3]
start默認為0,end默認為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的差異
toSpliced和slice都結果來看,都是從數組中獲取一些元素。
slice獲取指定範圍內的元素。
toSpliced獲取排除指定範圍內元素後剩下的元素。
其他
splice會修改原數組,產生副作用,所以不予考慮。