目前為止,我們已經學習了如何給數組的開始和結尾位置添加元素。下面我們來看一下怎樣從數組中刪除元素。
要刪除數組裡最靠後的元素,可以用pop
方法:
numbers.pop;
通過
push
和pop
方法,就能用數組來模擬棧,你將會在下一章看到這部分內容。
現在,數組輸出的數字是-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。
通過
shift
和unshift
方法,就能用數組模擬基本的隊列數據結構,第4章裡會講到。