Array类型-栈方法
栈方法
ECMAScript数组也提供了一种让数组的行为类似其他数据结构的方法。具体说来,数组可以表现得就像栈一样,后者是一种可以限制插入和删除项的数据结构。栈是一种LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。而栈中项的插入(叫做推入)和移除(叫做弹出),只放生在一个位置——栈的顶部。
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
以上代码中的数组可以看成是(代码本身没有任何区别,而push()和pop()都是数组默认的方法)首先,我们使用push()将两个字符串推入数组的末尾,,并将返回的结果保存在变量count中(值为2)。然后,再推入一个值,而结果仍然保存在count中。因为此时数组中包含3项,所以push()返回3。在调用pop()时,它会返回数组的最后一项,即字符串"black“。此后,数组中仅剩两项。
可以将栈方法与其他数组方法连用,像下面例子一样。
var colors=["red","blue"]; colors.push("brown");//添加另一项 colors[3]="black";//添加一项 alert(colors.length);//4 var item=colors.pop();//取得最后一项 alert(item);//black
在此,我们首先用两个值来初始化一个数组。然后,使用push()添加第三个值,再通过直接在位置3上赋值来添加第四个值。而在调用pop()时,该方法返回了字符串"black“,即最后一个添加到数组的值。