javaScript陣列中的棧和佇列

2021-08-10 14:18:59 字數 1715 閱讀 2693

棧方法

棧是一種lifo(last-in-first-out,後進先出)的資料結構。其實通俗的講就是最新新增的項最早被移除。而棧中項的插入(叫做推入)和移除(叫做彈出),只發生在乙個位置——棧的頂部。

在ecmascript中陣列也提供了讓它類似於其他資料結構的方法。具體來說,陣列可以表現得像棧一樣。還是舉例子吧。

ecmascript為陣列專門提供了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

佇列方法

棧資料結構的訪問規則是lifo(後進先出),而佇列資料結構的訪問規則是fifo(first-in-first-out,先進先出)。佇列在列表的末端新增項,從列表的前端移除項。

由於push()是向陣列末端新增項的方法,因此我們需要解決的就是從陣列的前端移除項。實現這一操作的陣列方法就是shift(),它能夠移除陣列中的第乙個項並返回該項,同時將陣列長度減一。下面就是結合使用shift()push()方法的例子:

var colors = new array();

var count = colors.push("red","green");

alert(count);

//2count = colors.push("black");

alert(count);

//3var item = colors.shift();

alert(item);

//"red"

alert(colors.length);

//2ecmascript還為陣列提供了乙個unshift()方法。它能夠在陣列前端新增任意項並返回新陣列的長度。由此我們可以自由組合進行許多有意思的模擬。

同時使用unshift()和pop()方法,可以從相反的方向來模擬佇列。即在陣列的前端新增項,從陣列末端移除項,如下面的例子所示:

var colors = new array();

var count = colors.unshift("red","green");

alert(count);

//2count = colors.unshift("black");

alert(count);

//3var item = colors.pop();

alert(item);

//"green"

alert(colors.length);

//2當然也可以使用unshift()和shift()方法從相反的方向來模擬棧。

JavaScript中的陣列

陣列 引數 返回值原陣列是否改變 1 向陣列尾部新增push 引數可以是乙個或多個 返回值是新增後陣列的長度 原陣列改變 2 刪除陣列的最後一項pop 沒有引數 返回值是刪除的那個數 原陣列改變 3 向陣列的頭部新增unshift 引數可以是乙個或多個 返回值是新增後陣列的長度 原陣列改變 4 刪除...

JavaScript中的陣列

1.1基本資料型別 以number型別為例number 報錯,error is not defined number nan,nan是非數值,乙個特殊的數值 number 1 1 乙個單純的數字 number 1 1 乙個單純的數字 new number 1 number,乙個物件,具有物件方法也就...

JavaScript中的陣列

陣列的宣告 宣告乙個陣列裡面是abc,宣告乙個空陣列物件 var arr1 newarray arr1 0 abc alert arr1 宣告乙個陣列長度是5,宣告乙個具有一定長度length的陣列 var arr2 newarray 5 alert arr2.length 宣告乙個陣列裡面有1 2...