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在非兼容模式下会返回正确的长度值。
新闻热点
疑难解答