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在非兼容模式下會返回正確的長度值。