讀古今文學網 > 學習JavaScript數據結構與算法(第2版) > 2.4 刪除元素 >

2.4 刪除元素

目前為止,我們已經學習了如何給數組的開始和結尾位置添加元素。下面我們來看一下怎樣從數組中刪除元素。

要刪除數組裡最靠後的元素,可以用pop方法:

numbers.pop;

  

 通過pushpop方法,就能用數組來模擬棧,你將會在下一章看到這部分內容。

現在,數組輸出的數字是-4到12,並且數組的長度是17。

從數組首位刪除元素

如果要移除數組裡的第一個元素,可以用下面的代碼:

for (var i = 0; i < numbers.length; i++){
  numbers[i] = numbers[i+1];
}

  

下面這張圖呈現了這段代碼的執行過程:

我們把數組裡所有的元素都左移了一位。但數組的長度依然是17,這意味著數組中有額外的一個元素(值是undefined)。在最後一次循環裡,i + 1引用了一個數組裡還未初始化的位置。在Java、C/C+或C#等一些語言裡,這樣寫可能就會拋出異常了,因此不得不在 numbers.length - 1處停止循環。

可以看到,我們只是把數組第一位的值用第二位覆蓋了,並沒有刪除元素(因為數組的長度和之前還是一樣的,並且了多一個未定義元素)。

使用shift方法

要確實刪除數組的第一個元素,可以用shift方法實現:

numbers.shift;

  

那麼,假如本來數組中的值是從-4到12,長度為17,執行了上述代碼後,數組就只有-3到12了,並且長度也會減小到16。

 通過shiftunshift方法,就能用數組模擬基本的隊列數據結構,第4章裡會講到。