ECMAScript5为数组提供了类似栈结构的方法。栈是一种LIFO(Last-In-First-Out)的数据结构,即最先添加到容器中的项目最早被移出。这种数据结构可以限制插入和删除项目。而栈中项的插入和移出只会发生在栈的顶部。ECMAScript5为数组专门提供push()
和pop()
方法,用来实现类似栈的行为。
push()
方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度。而pop()
方法则从数组的末尾移除最后一项,减少数组的长度,并返回被移除的项。
下面是一个关于push()
和pop()
方法的使用示例:
var colors = new Array(); var count = colors.push("red","green"); //往数组中插入2项 alert(count); // 2 count = colors.push("black"); //再插入另外一项 alert(count); // 3 var item = color.pop(); //弹出栈顶项 alert(item); // black alert(colors.length); // 2
从上面的代码可以看出,数组可以作为栈来使用。首先,我们使用push()
方法将两个字符串推入到数组的末尾,并将返回的结果保存在变量count
中。然后再推入另外一个字符串,此时变量count
的数量为3。在调用pop()
时,它会返回数组的最后一项,即字符串“black”,最终在数组中剩余两个项。