JSFiddle - React, Tailwind, and code Playground
JavaScript
function Queue() {
this.items = new Map();
this.tail = 0;
this.head = 0;
this.enqueue = (e) => {
this.items[this.tail++] = e;
}
this.dequeue = () => {
if (this.tail === this.head) return null;
let e = this.items[this.head];
delete this.items[this.head++];
return e;
}
}
// Tests
const queue = new Queue();
queue.enqueue("W");
queue.enqueue("A");
queue.enqueue("C");
console.log(queue.items)
for (let i in queue.items) {
console.log('Iteration => ', i, ' => ', queue.items[i])
}
console.log('Expect W => ', queue.dequeue());
console.log('Expect A => ', queue.dequeue());
console.log('Expect C => ', queue.dequeue());
console.log('Expect NULL => ', queue.dequeue());