Implement a queue data structure in JavaScript. A queue follows the First-In-First-Out (FIFO) principle. Your queue should have the following methods:
enqueue(element)
: Adds an element to the end of the queue.dequeue()
: Removes the first element from the queue and returns it. Returns undefined
if the queue is empty.front()
: Returns the first element of the queue without removing it. Returns undefined
if the queue is empty.isEmpty()
: Returns true
if the queue is empty, otherwise returns false
.size()
: Returns the number of elements in the queue.Use the following example to understand how the queue should work:
class Queue { // Your implementation here } const queue = new Queue(); queue.enqueue(1); queue.enqueue(2); console.log(queue.front()); // 1 console.log(queue.dequeue()); // 1 console.log(queue.size()); // 1 console.log(queue.isEmpty()); // false queue.dequeue(); console.log(queue.isEmpty()); // true