1.队列
队列是常见的使用数组方法之一。在计算机科学中,这表示支持两个操作的一个有序元素的集合:
push 在末端添加一个元素。
shift 取出队列首端的一个元素,整个队列往前移,这样原先排第二的元素现在排在了第一。
这两种操作数组都支持。
队列的应用在实践中经常碰到。例如需要在屏幕上显示消息队列。
数组还有另外一个用例,就是数据结构 栈 。
2.栈
栈支持两种操作:
push 在末端添加一个元素。
pop 从末端取出一个元素。
所以新元素的添加和取出都是从“末端”开始的。
栈通常被形容成一叠卡片:要么在最上面添加卡片,要么从最上面拿走卡片:
对于栈来说,最后放进去的内容是最先接收的,也叫做 LIFO (Last-In-First-Out),即后进先出法则。而与队列相对应的 FIFO (First-In-First-Out),即先进先出。
JavaScriptt 中的数组既可以用作队列,也可以用作栈。它们允许你从 首端/末端 来 添加/删除 元素。
在计算机科学中,允许这样操作的数据结构被称为 双端队列。
3.作用于数组末端的方法:
pop
//取出并返回数组的最后一个元素:
let fruits = ["Apple", "Orange", "Pear"];
alert(fruits.pop()); //Pear 移除 “Pear" 然后 alert 显示出来
alert(fruits); //Apple, Orange
push
//在数组末端添加元素:
let fruits = ["Apple", "Orange"];
fruits.push("Pear");
alerts(fruits); //Apple, Orange, Pear
调用 fruits.push(...) 与 fruits[fruits.length] = ... 是一样的。
4.作用于数组手段的方法:
shift
//取出数组的第一个元素并返回它:
let fruits = ["Apple", "Orange", "Pear"];
alert(fruits.shift()); //Apple 移除 Apple 然后 alert 显示出来
alert(fruits); //Orange, Pear
unshift
//在数组的首端添加元素:
let fruits = ["Orange", "Pear"];
fruits.unshift('Apple');
alert(fruits); //Apple, Orange, Pear
push 和 unshift 方法都可以一次添加多个元素:
let fruits = ["Apple"];
fruits.push.("Orange", "Peach");
fruits.unshift("Pineapple", "Lemon");
alert( fruits );
// ["Pineapple", "Lemon", "Apple", "Orange", "Peach"] alert( fruits );