天天看點

JS進階 05-02-03 Array類型 棧方法

ECMAScript數組也提供了一種讓數組的行為類似于其他資料結構的方法。具體說來,數組可以表現得就像棧一樣,後者是一種可以限制插人和删除項的資料結構。棧是一種LIFO (Last-In-First-Out, 後進先出)的資料結構,也就是最新添加的項最早被移除。而棧中項的插入(叫做推入)和移除(叫做 彈出),隻發生在一個位置——棧的頂部。ECMAScript為數組專門提供了 push() 和pop()方法,以便實作類似棧的行為。

push()方法可以接收任意數量的參數,把它們逐個添加到數組末尾,并傳回修改後數組的長度。而 pop()方法則從數組末尾移除最後一項,減少數組的length值,然後傳回移除的項。請看下面的例子:

var colors = new Array(); //create an array
var count = colors.push("red", "green"); //push two items
console.log(count); //2

count = colors.push("black"); //push another item on
console.log(count); //3

var item = colors.pop(); //get the last item
console.log(item); //"black"
console.log(colors.length); //2      

以上代碼中的數組可以看成是棧(代碼本身沒有任何差別,而push()和pop()都是數組預設的方法)。首先,我們使用push() 将兩個字元串推入數組的末尾,并将傳回的結果儲存在變量count中(值為2)。然後,再推入一個值,而結果仍然儲存在count中。因為此時數組中包含3項,是以push() 傳回3。在調用pop()時,它會傳回數組的最後一項,即字元串"black"。此後,數組中僅剩兩項。

var colors = ["red", "blue"];
colors.push("brown"); //add another item
colors[3] = "black"; //add an item
console.log(colors.length); //4

var item = colors.pop(); //get the last item
console.log(item); //"black"      

繼續閱讀