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());