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 相关文章推荐
修改好的jquery滚动字幕效果实现代码
Jun 22 Javascript
JavaScript保留两位小数的2个自定义函数
May 05 Javascript
JS使用for循环遍历Table的所有单元格内容
Aug 21 Javascript
JS打开新窗口防止被浏览器阻止的方法
Jan 03 Javascript
jQuery实现手机号码输入提示功能实例
Apr 30 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 Javascript
如何理解Vue的.sync修饰符的使用
Aug 17 Javascript
hammer.js实现图片手势放大效果
Aug 29 Javascript
webpack4.0 入门实践教程
Oct 08 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 Javascript
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
同时提取多条新闻中的文本一例
2006/10/09 PHP
56.com视频采集接口程序(PHP)
2007/09/22 PHP
php连接mysql数据库代码
2009/03/10 PHP
php print EOF实现方法
2009/05/21 PHP
php设计模式 Template (模板模式)
2011/06/26 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
对python添加模块路径的三种方法总结
2018/10/16 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
Django多数据库联用实现方法解析
2020/11/12 Python
想学画画?python满足你!
2020/12/24 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
项目经理岗位职责
2013/11/11 职场文书
护理学专业推荐信
2013/12/03 职场文书
2013的个人自我评价
2013/12/26 职场文书
家长对老师的感言
2014/03/11 职场文书
绿色出行口号
2014/06/18 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
表扬信格式模板
2015/05/05 职场文书
中学政教处工作总结
2015/08/13 职场文书
中学团支部工作总结
2015/08/13 职场文书