当前位置:编程学习 > JAVA >>

javascript实现的map(结合jquery)

首先实现Array的remove方法:

 \

Map的实现基于array  , 此代码是借一达人写的,我测试的时候,map 的remove 方法不能使用,所以就写了上面array.remove方法

view plaincopy to clipboardprint?function Map() {   
        /** 存放键的数组(遍历用到) */   
        this.keys = new Array();   
        /** 存放数据 */   
        this.data = new Object();   
           
        /** 
         * 放入一个键值对 
         * @param {String} key 
         * @param {Object} value 
         */   
        this.put = function(key, value) {   
            if(this.data[key] == null){   
                this.keys.push(key);   
            }   
            this.data[key] = value;   
        };   
           
        /** 
        * 获取某键对应的值 
        * @param {String} key 
         * @return {Object} value 
         */   
        this.get = function(key) {   
            return this.data[key];   
        };   
           
        /** 
         * 删除一个键值对 
         * @param {String} key 
         */   
        this.remove = function(key) {   
            this.keys.remove(key);   
            this.data[key] = null;   
        };   
           
        /** 
         * 遍历Map,执行处理函数 
         *  
         * @param {Function} 回调函数 function(key,value,index){..} 
         */   
        this.each = function(fn){   
            if(typeof fn != 'function'){   
                return;   
            }   
            var len = this.keys.length;   
            for(var i=0;i<len;i++){   
                var k = this.keys[i];   
                fn(k,this.data[k],i);   
            }   
        };   
           
        /** 
         * 获取键值数组(类似Java的entrySet()) 
         * @return 键值对象{key,value}的数组 
         */   
        this.entrys = function() {   
            var len = this.keys.length;   
            var entrys = new Array(len);   
            for (var i = 0; i < len; i++) {   
                entrys[i] = {   
                    key : this.keys[i],   
                    value : this.data[i]   
                };   
            }   
            return entrys;   
        };   
           
        /** 
         * 判断Map是否为空 
         */   
        this.isEmpty = function() {   
            return this.keys.length == 0;   
        };   
           
        /** 
         * 获取键值对数量 
         */   
        this.size = function(){   
            return this.keys.length;   
        };   
           
    }   
function Map() { 
     /** 存放键的数组(遍历用到) */ 
&n

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,