當咱們談到棧和隊列的時候,就會條件反射想起數據結構。在ECMAScript標準中,數組也是提供了相似於其餘數據結構的方法,分別是棧方法和隊列方法。javascript
棧是一種後進先出的數據結構,也就是最新添加的項會被最先移除,如同堆疊烙餅通常。前端
棧中項的插入(又叫推入)和移除(又叫彈出)只發生在棧的頂部。java
提供的棧方法有兩種,分別是push方法和pop方法。git
var arr = [];
// push方法
var count = arr.push('A', 'B');
console.log(count); // 2
console.log(arr); // ["A","B"]
count = arr.push('C');
console.log(count); // 3
// pop方法
var item = arr.pop();
console.log(item); // "C"
console.log(arr.length); // 2
複製代碼
隊列數據結構的訪問規則是先進先出,排在前一個的比後一個先出去,就像子彈出膛通常。github
插入和移除的操做位置發生在隊伍的頭部。數組
提供的隊列方法有兩種,分別是unshift方法和shift方法。數據結構
var arr = ['A','B','C'];
// unshift方法
var count = arr.unshift('a');
console.log(count); // 4
console.log(arr); // ["a", "A", "B", "C"]
// shift方法
var item = arr.shift();
console.log(item); // "a"
console.log(arr.length); // 3
複製代碼