JSFiddle - React, Tailwind, and code Playground

by samneo

JavaScript

//stacks
//Allow only a single item to be added or removed at a time 
//Stacks allow access to the last item inserted (LIFO)

function Stack(){
    var topOfStack = -1;
    var stackArray = [];
    
    var pop = function(){
        if(topOfStack >= 0){
            stackArray[topOfStack] = "-1";
            el = stackArray[topOfStack--];
            display('pop');
            return el;
        }
    }
    
    var push = function(el){
        topOfStack++;
        stackArray[topOfStack] = el;
        display('push');
    }
    
    var peek = function(){
        var el = stackArray[topOfStack]
        display('peek');
        return el;
    }
    
    var display = function(meth){
        console.log('stackArray : '+meth+' : ',stackArray);
    }
    
    return {
        pop:pop,
        push:push,
        peek:peek
    }
}

var s1 = Stack();

s1.push('10');
s1.push('11');
s1.push('12');