Java中除了提供数组之外,还提供了Lise集合、Deque集合,其中LIst集合代表线性表;而Deque集合则代表则代表双向队列、既可充当栈,也可充当队列使用。JavaScript的数组则相当于Java中数组、List集合、Deque集合三者的角色。
JavaScript数组作为栈使用的两个方法如下:
push(ele):元素入栈,返回如战后数组的长度。
pop():元素出栈,返回出栈的数组元素。
JavaScrip数组作为队列使用的两个方法如下:
unshift(ele):元素入队列,返回入队列后数组的长度。
shift():元素出队列,返回出队列的数组元素。
这时候发现一个问题,大家都知道栈是先入后出的,队是先入先出的。那数组是如何实现这些的呢
数组作为栈的时候
代码:
<script type="text/javascript">
var s = []; //定义数组
s.push("0") //0进栈
console.log(s); //输出数组
s.push("2");
console.log(s);
s.push("3");
console.log(s);
console.log(s.pop()); //出栈
console.log(s);
console.log(s.pop()); //出栈
console.log(s);
</script>
控制台:
push(ele)在数进入数组时是从数组尾部进栈
pop()元素在数组末端出栈
所有达到了先进后出的效果
数组作为队列的时候
代码:
<script type="text/javascript">
var q = []; //定义数组
q.unshift("0") //0插入数组
console.log(q); //输出数组
q.unshift("2");
console.log(q);
q.unshift("3");
console.log(q);
console.log(q.shift()); //出队
console.log(q);
console.log(q.shift());
console.log(q);
</script>
unshift((ele):在元素进队的时候是从前面进入的(把数组中所有元素向后挤一个位置)
shift(():在元素出队的时候是从前面出的
要想真正达到广义上的先入先出,push 和 shift 混合操作即可