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 常见操作实现方式和常用函数方法总结
May 06 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
May 30 Javascript
使用jQuery时Form表单元素ID和name命名大忌
Mar 06 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
Aug 13 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 Javascript
js 声明数组和向数组中添加对象变量的简单实例
Jul 28 Javascript
利用node.js本地搭建HTTP服务器
Apr 19 Javascript
vue之数据交互实例代码
Jun 20 Javascript
vue 实现动态路由的方法
Jul 06 Javascript
js实现盒子拖拽动画效果
Aug 09 Javascript
javascript实现固定侧边栏
Feb 09 Javascript
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
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使用codebase生成随机数
2014/03/25 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
laravel解决迁移文件一次删除创建字段报错的问题
2019/10/24 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
vue数据控制视图源码解析
2018/03/28 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
微信小程序位置授权处理方法
2019/06/13 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
Tensorflow 多线程与多进程数据加载实例
2020/02/05 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
工商管理系学生的自我评价分享
2013/11/29 职场文书
迟到检讨书1000字
2014/01/15 职场文书
学校对教师的评语
2014/04/28 职场文书
党员民主评议自我评价
2014/10/20 职场文书
导游词怎么写
2015/02/04 职场文书
2014年个人总结范文
2015/03/09 职场文书
卡特教练观后感
2015/06/08 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书