Yoct0-队列 
Tiny队列数据结构
你应该使用这个包,而不是一个数组,如果你做了很多 Array#push() 和 Array#shift() 在大型阵列上,因为 Array#shift() 有 线性时间复杂度 O(n) 当……时 Queue#dequeue() 有 常数时间复杂度 O(1).这使得大型阵列的巨大差异。
一个 队列 是一个有序的元素列表,其中一个元素被插入到队列的末尾,并从队列的前面删除。一个队列的工作原理是基于先进先出 (先进先出) 原则。
安装
npm install yocto-queue
用法
import Queue from 'yocto-queue';
const queue = new Queue();
queue.enqueue('🦄');
queue.enqueue('🌈');
console.log(queue.size);
//=> 2
console.log(...queue);
//=> '🦄 🌈'
console.log(queue.dequeue());
//=> '🦄'
console.log(queue.dequeue());
//=> '🌈'
API
queue = new Queue()
该实例是一个 Iterable,这意味着您可以使用 “for... of” 循环从前到后迭代队列。使用迭代器不会从队列中删除项目。如果你想要,使用 drain() 代替。
您还可以使用扩展将队列转换为数组。除非你真的需要,否则不要这样做,因为它很慢。
.enqueue(value)
向队列添加一个值。
.dequeue()
删除队列中的下一个值。
返回删除的值或 undefined 如果队列为空。
.peek()
获取队列中的下一个值,而不删除它。
返回值或 undefined 如果队列为空。
.drain()
返回一个迭代器,该迭代器在您使用项目时将其从队列中删除。
这允许您在处理其项目时清空队列。
如果您不想在消费时删除项目,请使用 Queue 对象作为迭代器。
.clear()
清除队列。
.size
队列的大小。
相关
- 快速-lru -简单的 “最近最少使用” (LRU) 缓存