Google - Stack

by Anton Bagayev

JavaScript

// Creates a stack
var Stack = function() {
    let count = 0;
    let storage = {};
  
    // Adds a value onto the end of the stack
    this.push = function(value) {
        storage[count] = value;
        count++;
    }
    
    // Removes and returns the value at the end of the stack
    this.pop = function() {
        if (count === 0) {
            return undefined;
        }

        count--;
        var result = storage[count];
        delete storage[count];
        return result;
    }
    
    this.size = function() {
        return count;
    }
    
    // Returns the value at the end of the stack
    this.peek = function() {
        return storage[count-1];
    }
}

var myStack = new Stack();

myStack.push(1);
console.log(myStack.peek());
myStack.push(2);
console.log(myStack.peek());
console.log(myStack.count);
console.log(myStack.storage);