共计 844 个字符,预计需要花费 3 分钟才能阅读完成。
队列
原文链接: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
正文完