stackedMap by angular

1751 단어 Angular
angular.module('demo.stackedMap',[])
//  
.factory('$$stackedMap',function(){
    return {
        createNew:function(){
            var stack = [];
            
            return {
                //  
                add:function(key,value){
                    stack.push({
                        key:key,
                        value:value
                    })
                },
                
                get:function(key){
                    for(var i = 0;i<stack.length;i++){
                        if(key === stack[i].key){
                            return stack[i];
                        }
                    }
                },
                
                keys:function(){
                    var keys = [];
                    for(var i = 0;i<stack.length;i++){
                        keys.push(stack[i].key);
                    }
                    return keys;
                },
                
                top:function(){
                    return stack[stack.length -1];
                },
                
                remove:function(key){
                    var idx = -1;
                    for(var i = 0;i<stack.length;i++){
                        if(key = stack[i].key){
                            idx = i;
                            break;
                        }
                    }
                    return stack.splice(idx,1)[0];
                },
                
                removeTop:function(){
                    return stack.splice(stack.length-1,1)[0];
                },
                
                length:function(){
                    return stack.length;
                }
            }
        }
    }
});

좋은 웹페이지 즐겨찾기