队列

原文链接:https://note.noxussj.top/?source=sifo

什么是队列?

队列是一种遵循先进先出准则的有序汇合,增加新元素的一端称为队尾,另一端称为队首。


实现性能

在 JavaScript 中没有队列,然而能够通过 Array 实现队列的所有性能

  • enqueue () 入队
  • dequeue () 出队
  • top () 获取队首值
  • size () 获取队列的元素个数
  • clear () 清空队列

利用场景

  • JavaScript 异步工作中的工作队列
  • 计算最近申请次数

根底案例

通过数组实现

    const queue = []    queue.push(1) // 入队    queue.shift() // 出队    const top = queue[0] // 获取队首值    const size = queue.length // 获取队列的元素个数    queue.length = 0 // 清空队列

通过类模仿实现

    class Queue {        constructor() {            this.data = {}            this.count = 0        }            /**         * 入队         */        enqueue(item) {            this.data[this.count++] = item                return item        }            /**         * 出队         */        dequeue() {            if (this.count > 0) {                const item = this.data[0]                    delete this.data[0]                    this.count--                    return item            } else {                return -1            }        }            /**         * 获取队首值         */        top() {            if (this.count > 0) {                return this.data[0]            } else {                return -1            }        }            /**         * 获取队列的元素个数         */        size() {            return this.count        }            /**         * 清空队列         */        clear() {            this.data = {}            this.count = 0                return {}        }    }        const queue = new Queue()        queue.enqueue('a')    queue.enqueue('b')

原文链接:https://note.noxussj.top/?source=sifo