一、栈方法
栈是一种数据结构(后进先出),也就是说,最新添加的元素最早被移除。ECMAScript为数组专门提供了push()方法和pop()方法。
push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后的长度。
而pop()方法则从数组末尾移除最后一个元素,减少数组长度,返回的是移除的元素内容。
Example1:
<script type="text/javascript">
var box = ['Mr. Chen',35,'广东'];
document.write(box.push('JavaScipt','江西')); //给数组末尾添加N个元素,返回的是数组的最新长度
document.write("<br \>");
document.write(box)
document.write("<br \>");
document.write(box.pop()); //从数组末尾移除元素,返回的是移除的元素内容
document.write("<br \>");
document.write(box);
</script>
效果如下所示:
5
Mr. Chen,35,广东,JavaScipt,江西
江西
Mr. Chen,35,广东,JavaScipt
二、队列方法
栈方法是后进先出,而队列方法是先进先出。这个方法是在数组的末端添加元素,从数组的首端移除元素。通过push()方法添加元素,通过shift()方法移除一个元素。
Example2:
<script type="text/javascript">
var box = ['Mr. Chen',35,'广东'];
document.write(box.push('JavaScipt','江西')); //给数组末尾添加N个元素,返回的是数组的最新长度
document.write("<br \>");
document.write(box)
document.write("<br \>");
document.write(box.shift()); //从数组首端移除元素,返回的是移除的元素内容
document.write("<br \>");
document.write(box);
</script>
效果如下所示:
5Mr. Chen,35,广东,JavaScipt,江西
Mr. Chen
35,广东,JavaScipt,江西
ECMAScript还为数组提供了一个unshift()方法,unshift()方法和shift()方法功能完全相反。unshift()方法是为数组的前端添加一个元素。 PS:IE浏览对于unshift()方法总是返回undefined而不是数组的新长度。
Example3:
<script type="text/javascript">
var box = ['Mr. Chen',35,'广东'];
document.write(box.unshift('JavaScipt','江西')); //给数组前端添加N个元素,返回的是数组的最新长度
document.write("<br \>");
document.write(box)
</script>
效果如下所示:
5
Mr. Chen,35,广东,JavaScipt,江西