残缺可运行代码
class Queue { constructor() { this.count = 0 // 队头 this.head = 0 this.items = {} } enqueue(element) { this.items[this.count] = element this.count++; } dequeue() { if (this.isEmpty()) { return undefined; } const result = this.items[this.head] delete this.items[this.head] this.head++ return result } peek() { if (this.isEmpty()) { return undefined } return this.items[this.head] } isEmpty() { return this.size() === 0 } clear() { this.items = {} this.count = 0 this.head = 0 } size() { return this.count - this.head } toString() { if (this.isEmpty()) { return '' } let objString = `${this.items[this.head]}` for (let i = this.head + 1; i < this.count; i++) { objString = `${objString},${this.items[i]}` } return objString }}// const queue = new Queue()queue.enqueue('a')queue.enqueue('b')queue.enqueue('c')queue.enqueue('d')console.log(queue.toString()) //--> a,b,c,dqueue.dequeue()queue.dequeue()console.log(queue.toString()) //--> c,dconsole.log(queue.peek()) //--> cconsole.log(queue.isEmpty()) //--> falseconsole.log(queue.size()) //--> 2