Array類型中的棧方法

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

push()方法可以接受任意數量的參數,把它們逐個添加到數組末尾,並返回修改後數組的長度。而pop()方法則從數組末尾移除最後一項,減少數組的length值,然後返回移除的項。

<scrippt>
    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
</script>

除了上面的方法之外,還可以將棧方法與其他的數組方法連用:

<script>
    var colors =new Array();
    var count = colors.unghift("red","green");//推入兩項
    alert(count);  //2
    count=colors.unghift("black");//推入另一項
    alert(count);//3

    var item = colors.pop();//取得最後一項
    alert(item);//"green"
    alert(colors.length); //2
</script>

這個例子創建了一個數組並使用unghift()方法先後推入了三個值。首先是“red”和”green”,然後是”black”,數組中各項的順序爲”black”,”red”,”green”.在調用pop()方法時,移除並返回的是最後一項。即”green”.

注意:IE7及更早版本對JavaScript的實現中存在一個偏差,其unghift()方法總是返回unghift而不是數組的新長度。IE8在非兼容模式下會返回正確的長度值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章