JavaScript Array類型具有的方法(二)
阿新 • • 發佈:2019-04-25
class 個數 block 插入 設計 .com 這一 法則 def )。請看下面的例子。
同時將數組長度減一。結合使用shift()和push()方法,可以像使用隊列一樣使用數組。請看下面的例子。
來自 《JavaScript高級程序設計(第三版)》
輸入提取碼 herm ->獲取本書
2.棧方法
我們都知道,C++裏面有一種數據結構叫棧(Stack),它是一種線性存儲結構,特點有以下幾個:數據元素遵循著 先進後出(First In Last Out) 的原則;只能在棧頂進行插入、刪除等操作。棧中項的插入(叫做推入)和移除(彈出)只發生在一個位置——棧的頂部。在JS中,為數組專門提供了push()和pop()方法,以便實現類似棧的行為。
push()方法可以接收任意數量的參數,把它們逐個添加到數組末尾,並返回修改後數組的長度,而pop()方法則從數組末尾移除最後一項,減少數組的length值,然後返回移除的項(移除並返回
var colors = new Array(); //創建一個數組 var count = colors.push("red","green"); //推入兩項 alert(count); //2 count = colors.push("black"); //推入另外一項 alert(count); //3 var item = colors.pop(); //刪除並取得最後一項 alert(item); //"black" alert(colors.length); //2
我們也可以將棧方法與其他數組方法連用。請看下面這個例子。
var colors = ["red","blue"]; colors.push("brown"); //添加另一項 colors[3] = "black"; //添加一項 alert(colors.length); //4 var item = colors.pop(); //取得最後一項 alert(item); //"black"
3.隊列方法
與棧方法類似,C++中也有隊列(Queue),特點是:先進先出(FIFO)。隊列在列表的末端添加項,從列表的前端移除項。由於push()是向數組末端添加項的方法,因此要模擬隊列只需一個從數組前端取得項的方法。實現這一操作的數組方法就是shift(),它能夠移除數組中的第一個項並返回該項,
var colors = new Array(); //創建一個數組 var count = colors.push("red","green"); //推入兩項 alert(count); //2 count = colors.push("black"); //推入另一項 alert(count); //3 var item = colors.shift(); //取得第一項 alert(item); //"red" alert(colors.length); //2
另外,還提供了一個unshift()方法,顧名思義unshift()方法與shift()方法用途相反:它能夠在數組前端添加任意個項並返回新數組的長度。因此,同時使用unshift()方法和pop()方法,可以從相反的方向模擬隊列,即在數組的前端添加項,從數組末端移除項。請看下面的例子。
var colors = new Array(); //創建一個數組 var count = colors.unshift("red","green"); //推入兩項 alert(count); //2 count = colors.unshift("black"); //推入另一項 alert(count); //3 var item = colors.pop(); //取得最後一項 alert(item); //"green" alert(colors.length); //2
(IE7及更早版本對JavaScript的實現中存在一個偏差,其unshift()總是返回undefined而不是數組的新長度。)
JavaScript Array類型具有的方法(二)