Array类型中的栈方法

来源:互联网 发布:列宾美院知乎 编辑:程序博客网 时间:2024/06/05 02:24

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在非兼容模式下会返回正确的长度值。

0 0
原创粉丝点击