1.隊列
隊列是常見的使用數(shù)組方法之一。在計算機科學中,這表示支持兩個操作的一個有序元素的集合:
push 在末端添加一個元素。
shift 取出隊列首端的一個元素,整個隊列往前移,這樣原先排第二的元素現(xiàn)在排在了第一。

這兩種操作數(shù)組都支持。
隊列的應用在實踐中經(jīng)常碰到。例如需要在屏幕上顯示消息隊列。
數(shù)組還有另外一個用例,就是數(shù)據(jù)結構 棧 。
2.棧
棧支持兩種操作:
push 在末端添加一個元素。
pop 從末端取出一個元素。
所以新元素的添加和取出都是從“末端”開始的。
棧通常被形容成一疊卡片:要么在最上面添加卡片,要么從最上面拿走卡片:

對于棧來說,最后放進去的內容是最先接收的,也叫做 LIFO (Last-In-First-Out),即后進先出法則。而與隊列相對應的 FIFO (First-In-First-Out),即先進先出。
JavaScriptt 中的數(shù)組既可以用作隊列,也可以用作棧。它們允許你從 首端/末端 來 添加/刪除 元素。
在計算機科學中,允許這樣操作的數(shù)據(jù)結構被稱為 雙端隊列。
3.作用于數(shù)組末端的方法:
pop
//取出并返回數(shù)組的最后一個元素:
let fruits = ["Apple", "Orange", "Pear"];
alert(fruits.pop());? ? //Pear 移除 “Pear" 然后 alert? 顯示出來
alert(fruits);? ? //Apple, Orange
push
//在數(shù)組末端添加元素:
let fruits = ["Apple", "Orange"];
fruits.push("Pear");
alerts(fruits);? ? //Apple, Orange, Pear
調用 fruits.push(...)??與 fruits[fruits.length] = ... 是一樣的。
4.作用于數(shù)組手段的方法:
shift
//取出數(shù)組的第一個元素并返回它:
let fruits = ["Apple", "Orange", "Pear"];
alert(fruits.shift());? ? //Apple 移除 Apple 然后 alert 顯示出來
alert(fruits);? ? //Orange, Pear
unshift
//在數(shù)組的首端添加元素:
let fruits = ["Orange", "Pear"];
fruits.unshift('Apple');
alert(fruits);? ? //Apple, Orange, Pear
push 和 unshift 方法都可以一次添加多個元素:
let fruits = ["Apple"];
fruits.push.("Orange", "Peach");
fruits.unshift("Pineapple", "Lemon");
alert( fruits );
// ["Pineapple", "Lemon", "Apple", "Orange", "Peach"] alert( fruits );