Javascript Array 隊列方法
棧數據結構的訪問規則是LIFO(后進先出),而隊列數據結構的訪問規則是FIFO( first-in-first-out,先進先出)。隊列在列表的末端添加項,從列表的前端移除項。由于push()是向數組末端添加項的方法,因此要模擬隊列只需一個從數組前端取得項的方法。實現這一操作的數組方法就是shift(),它能夠移除數組中的第一個項并返回該項,同時將數組長度減1。結合使用shift()和push()方法,可以像使用隊列一樣使用數組:
var colors=new Array(); //創建一個數組
var count=colors.push("red","greent"); //推入兩項
alert( count); //2
count=colors.push( "black"); //推入另一項
alert( count); //3
alert (item); //"red"
alert (colors.length); //2
這個例子首先使用push()方法創建了一個包含3種顏色名稱的數組。代碼中帶陰影的那一行使用shift()方法從數組中取得了第一項,即"red"。在移除第一項之后,"green"就變成了第一項,而"black"則變成了第二項,數組也只包含兩項了。
ECMAScript還為數組提供了一個unshift()方法。顧名思義,unshift()與shift()的用途相反:它能在數組前端添加任意個項并返回新數組的長度。因此,同時使用unshift()和pop()方法,可以從相反的方向來模擬隊列,即在數組的前端添加項,從數組末端移除項,如下面的例子所示:
var colors=new Array(); //創建一個數組
alert( count); //2
alert( count); //3
alert(item); //"green"
alert(colors.length); //2
南昌網站建公司百恒網絡工程師分析:這個例子創建了一個數組并使用unshift()方法先后推入了3個值。首先是"red"和"green",然后是"black",數組中各項的順序為"black"、"red"、green"。在調用pop()方法時,移除并返回的是最后一項,即"green"。