js实现map

来源:互联网 发布:kingkong1024灯光编程 编辑:程序博客网 时间:2024/06/05 23:41

搜了js实现map的文章,很多都是数组,需要遍历,个人认为性能很差,看到一篇用js动态添加属行 实现的文章, 拿过来根据自己需要改了下.

function Map() {

  
    /** 存放数据 */
    this.data = new Object();


    /**
     * 放入一个键值对
     * @param {String} key
     * @param {Object} value
     */
    this.put = function(key, value) {
        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) {
        delete this.data[key] ;
    };


    /**
     * 遍历Map,执行处理函数
     *
     * @param {Function} 回调函数 function(key,value,index){..}
     */
    this.each = function(fn){
        if(typeof fn != 'function'){
            return;
        }
        for(x in this.data){
            fn(x,this.data[x]);
        }
    };




    /**
     * 判断Map是否为空
     */
    this.isNull = function() {
        for(x in this.data){
return false;
}
return true;
    };


    /**
     * 获取键值对数量
     */
    this.size = function(){
var i = 0;
for(x in this.data){
 i++;
}
        return i;
    };


    /**
     * 重写toString
     */
    this.toString = function(){
        var s = "{";
        for( x in this.data ){
            s += x+"="+this.data[x]+",";
        }
        s+="}";
        return s;
    };
};
原创粉丝点击