队列
是什么
队列是遵循先进先出(FIFO,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。在现实中,最常见的队列的例子就是排队。
怎么做
class Queue {
constructor(){
this.items = []
}
// 增:队列增加一个元素
enqueue(value){
this.items.push(value)
}
// 删:出队列
dequeue(){
return this.items.shift()
}
// 删:清空队列
clear(){
return this.items = []
}
// 查:返回队列是否是空
isEmpty(){
return this.items.length === 0
}
// 查:返回队列的大小
size(){
return this.items.length
}
}
使用方法:
const queue = new Queue();
queue.enqueue('a');
queue.enqueue('b');
queue.enqueue('c');
queue.enqueue('d');
console.log(queue.isEmpty()); // true
console.log(queue.size());// 4
console.log(queue.peek());// a
console.log(queue.dequeue());;// a
console.log(queue.dequeue());;// b
console.log(queue.dequeue());;// c
解决了什么问题:
队列的应用比较常见,比如很多任务事件队列、vue 的更新队列、vue 的 mixin 合并队列,都是根据先进先被执行先出队的原则