讀古今文學網 > 學習JavaScript數據結構與算法(第2版) > 2.5 在任意位置添加或刪除元素 >

2.5 在任意位置添加或刪除元素

目前為止,我們已經學習了如何添加元素到數組的開頭或結尾處,以及怎樣刪除數組開頭和結束位置上的元素。那如何在數組中的任意位置上刪除或添加元素?

我們可以使用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。因此,我們應該始終使用splicepopshift(馬上就會學到)方法來刪除數組元素。

現在,我們想把數字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。