JavaScript中实现map功能代码分享


Posted in Javascript onJune 11, 2015
/* 
 * 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 相关文章推荐
JavaScript DOM学习第四章 getElementByTagNames
Feb 19 Javascript
jquery validation插件表单验证的一个例子
Mar 03 Javascript
JavaScript 原型与继承说明
Jun 09 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
jquery异步跨域访问代码
Jun 28 Javascript
javascript父、子页面交互技巧总结
Aug 08 Javascript
jQuery匹配文档链接并添加class的方法
Jun 26 Javascript
JavaScript解八皇后问题的方法总结
Jun 12 Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 Javascript
JavaScript设计模式之策略模式详解
Jun 09 Javascript
基于dataset的使用和图片延时加载的实现方法
Dec 11 Javascript
Vue vm.$attrs使用场景详解
Mar 08 Javascript
JQuery复制DOM节点的方法
Jun 11 #Javascript
JavaScript中标识符提升问题
Jun 11 #Javascript
JQuery删除DOM节点的方法
Jun 11 #Javascript
JQuery插入DOM节点的方法
Jun 11 #Javascript
JQuery创建DOM节点的方法
Jun 11 #Javascript
JQuery查找DOM节点的方法
Jun 11 #Javascript
JQuery鼠标移到小图显示大图效果的方法
Jun 10 #Javascript
You might like
深入探究PHP的多进程编程方法
2015/08/18 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
js实现一个简易计算器
2020/03/30 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
python flask 多对多表查询功能
2017/06/25 Python
django文档学习之applications使用详解
2018/01/29 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
详解Python 函数如何重载?
2019/04/23 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
建筑专业自荐信范文
2014/01/05 职场文书
小型女装店的创业计划书
2014/01/09 职场文书
社团文化节策划书
2014/02/01 职场文书
主办会计岗位职责
2014/03/13 职场文书
监考失职检讨书
2015/01/26 职场文书
西双版纳导游词
2015/02/03 职场文书
在人间读书笔记
2015/06/30 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
PHP 时间处理类Carbon
2022/05/20 PHP
Linux中各个目录的作用与内容
2022/06/28 Servers