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字符串拼接的效率问题
Dec 25 Javascript
有关于eclipse配置spket需要注意的一些地方
Apr 07 Javascript
json数据的列循环示例
Sep 06 Javascript
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 Javascript
jQuery获取样式中颜色值的方法
Jan 29 Javascript
基于jQuery制作小图标上下滑动特效
Jan 18 Javascript
关于JavaScript中forEach和each用法浅析
Jul 27 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
Sep 29 Javascript
vue+element导航栏高亮显示的解决方式
Nov 12 Javascript
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
js中Map和Set的用法及区别实例详解
Feb 15 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实现维护文件代码
2007/06/14 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
django创建简单的页面响应实例教程
2019/09/06 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
教师个人剖析材料
2014/02/05 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
医院义诊活动总结
2014/07/04 职场文书
领导干部保密承诺书
2014/08/30 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
教师个人学习总结
2015/02/11 职场文书
小鞋子观后感
2015/06/05 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS