JavaScript中实现map功能代码分享

 更新时间:2015年06月11日 10:08:55   投稿:junjie  
这篇文章主要介绍了JavaScript中实现map功能代码分享,本文直接给出实现代码,给出一个MAP类,类中包含大多数的常用方法,还可以自己扩展,需要的朋友可以参考下
/* 
 * MAP对象,实现MAP功能 
 * 
 * 接口: 
 * size()     获取MAP元素个数 
 * isEmpty()    判断MAP是否为空 
 * clear()     删除MAP所有元素 
 * put(key, value)   向MAP中增加元素(key, value)  
 * remove(key)    删除指定KEY的元素,成功返回True,失败返回False 
 * get(key)    获取指定KEY的元素值VALUE,失败返回NULL 
 * element(index)   获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL 
 * containsKey(key)  判断MAP中是否含有指定KEY的元素 
 * containsValue(value) 判断MAP中是否含有指定VALUE的元素 
 * values()    获取MAP中所有VALUE的数组(ARRAY) 
 * keys()     获取MAP中所有KEY的数组(ARRAY) 
 * 
 * 例子: 
 * var map = new Map(); 
 * 
 * map.put("key", "value"); 
 * var val = map.get("key") 
 * …… 
 * 
 */  
function Map() {  
    this.elements = new Array();  
      
    //获取MAP元素个数  
    this.size = function() {  
        return this.elements.length;  
    }  
      
    //判断MAP是否为空  
    this.isEmpty = function() {  
        return(this.elements.length < 1);  
    }  
      
    //删除MAP所有元素  
    this.clear = function() {  
        this.elements = new Array();  
    }  
      
    //向MAP中增加元素(key, value)   
    this.put = function(_key, _value) {  
        this.elements.push( {  
            key : _key,  
            value : _value  
        });  
    }  
      
    //删除指定KEY的元素,成功返回True,失败返回False  
    this.remove = function(_key) {  
        var bln = false;  
        try{  
            for(i = 0; i < this.elements.length; i++) {  
                if(this.elements[i].key == _key) {  
                    this.elements.splice(i, 1);  
                    return true;  
                }  
            }  
        } catch(e) {  
            bln = false;  
        }  
        return bln;  
    }  
      
    //获取指定KEY的元素值VALUE,失败返回NULL  
    this.get = function(_key) {  
        try{  
            for(i = 0; i < this.elements.length; i++) {  
                if(this.elements[i].key == _key) {  
                    return this.elements[i].value;  
                }  
            }  
        } catch(e) {  
            return null;  
        }  
    }  
      
    //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL  
    this.element = function(_index) {  
        if(_index < 0 || _index >= this.elements.length) {  
            return null;  
        }  
        return this.elements[_index];  
    }  
      
    //判断MAP中是否含有指定KEY的元素  
    this.containsKey = function(_key) {  
        varbln = false;  
        try{  
            for(i = 0; i < this.elements.length; i++) {  
                if(this.elements[i].key == _key) {  
                    bln = true;  
                }  
            }  
        } catch(e) {  
            bln = false;  
        }  
        return bln;  
    }  
      
    //判断MAP中是否含有指定VALUE的元素  
    this.containsValue = function(_value) {  
        var bln = false;  
        try{  
            for(i = 0; i < this.elements.length; i++) {  
                if(this.elements[i].value == _value) {  
                    bln = true;  
                }  
            }  
        } catch(e) {  
            bln = false;  
        }  
        return bln;  
    }  
      
    //获取MAP中所有VALUE的数组(ARRAY)  
    this.values = function() {  
        var arr = new Array();  
        for(i = 0; i < this.elements.length; i++) {  
            arr.push(this.elements[i].value);  
        }  
        return arr;  
    }  
      
    //获取MAP中所有KEY的数组(ARRAY)  
    this.keys = function() {  
        var arr = new Array();  
        for(i = 0; i < this.elements.length; i++) {  
            arr.push(this.elements[i].key);  
        }  
        return arr;  
    }  
}

相关文章

  • javascript图片预览和上传(兼容IE)

    javascript图片预览和上传(兼容IE)

    这篇文章主要为大家详细介绍了javascript图片预览和上传的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • JavaScript 中的数据类型Number

    JavaScript 中的数据类型Number

    这篇文章主要介绍了JavaScript 中的数据类型Number,Number 类型使用 IEEE 754 格式表示整数和浮点值,下文相关详细资料介绍,需要的小伙伴可以参考一下
    2022-04-04
  • JavaScript中遍历的十种方法总结

    JavaScript中遍历的十种方法总结

    这篇文章主要给大家介绍了关于JavaScript中遍历的十种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • javascript之嵌套函数使用方法

    javascript之嵌套函数使用方法

    在javascript中允许使用嵌套函数,下面是简单的例子。
    2010-03-03
  • 全面了解JavaScript对象进阶

    全面了解JavaScript对象进阶

    下面小编就为大家带来一篇全面了解JavaScript对象进阶。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • javascript和php使用ajax通信传递JSON的实例

    javascript和php使用ajax通信传递JSON的实例

    今天小编就为大家分享一篇javascript和php使用ajax通信传递JSON的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • JavaScript大文件上传的处理方法之切片上传

    JavaScript大文件上传的处理方法之切片上传

    这篇文章主要介绍了JavaScript大文件上传的处理方法之切片上传,切片上传的原理较为简单,即获取文件后切片,切片后整理好每个切片的参数并发请求即可
    2022-06-06
  • ES6中解构赋值的语法及用法实例

    ES6中解构赋值的语法及用法实例

    ES6的解构赋值是一种快速方便的方法,可以从数组或对象中提取值并将其赋值给变量,下面这篇文章主要给大家介绍了关于ES6中解构赋值的语法及用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • Javascript call及apply应用场景及实例

    Javascript call及apply应用场景及实例

    这篇文章主要介绍了Javascript call及apply应用场景及实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 一个简单的JavaScript数据缓存系统实现代码

    一个简单的JavaScript数据缓存系统实现代码

    数据缓存系统,主要是将一些可复用的数据临时存放一下,放下数据后面的再次调用。
    2010-10-10

最新评论