Implement a stack data structure in JavaScript. A stack is a collection that follows the Last-In-First-Out (LIFO) principle. Your stack should have the following methods:
push(element)
: Adds an element to the top of the stack.pop()
: Removes the top element from the stack and returns it. Returns undefined
if the stack is empty.peek()
: Returns the top element of the stack without removing it. Returns undefined
if the stack is empty.isEmpty()
: Returns true
if the stack is empty, otherwise returns false
.size()
: Returns the number of elements in the stack.Use the following example to understand how the stack should work:
class Stack { // Your implementation here } const stack = new Stack(); stack.push(1); stack.push(2); console.log(stack.peek()); // 2 console.log(stack.pop()); // 2 console.log(stack.size()); // 1 console.log(stack.isEmpty()); // false stack.pop(); console.log(stack.isEmpty()); // true