目前為止,我們已經學習了如何添加元素到數組的開頭或結尾處,以及怎樣刪除數組開頭和結束位置上的元素。那如何在數組中的任意位置上刪除或添加元素?
我們可以使用splice
方法,簡單地通過指定位置/索引,就可以刪除相應位置和數量的元素:
numbers.splice(5,3);
這行代碼刪除了從數組索引5開始的3個元素。這就意味著numbers[5]
、numbers[6]
和numbers[7]
從數組中刪除了。現在數組裡的值變成了-3、-2、-1、0、1、5、6、7、8、9、10、11和12(2、3、4已經被移除)。
對於JavaScript數組和對象,我們還可以用
delete
操作符刪除數組中的元素,例如delete numbers[0]
。然而,數組位置0的值會變成undefined
,也就是說,以上操作等同於numbers[0] = undefined
。因此,我們應該始終使用splice
、pop
或shift
(馬上就會學到)方法來刪除數組元素。
現在,我們想把數字2、3、4插入數組裡,放到之前刪除元素的位置上,可以再次使用splice
方法:
numbers.splice(5,0,2,3,4);
splice
方法接收的第一個參數,表示想要刪除或插入的元素的索引值。第二個參數是刪除元素的個數(這個例子裡,我們的目的不是刪除元素,所以傳入0)。第三個參數往後,就是要添加到數組裡的值(元素2、3、4)。輸出會發現值又變成了從-3到12。
最後,執行下這行代碼:
numbers.splice(5,3,2,3,4);
輸出的值是從-3到12。原因在於,我們從索引5開始刪除了3個元素,但也從索引5開始添加了元素2、3、4。