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 相关文章推荐
JS获取地址栏参数的小例子
Aug 23 Javascript
运用jQuery定时器的原理实现banner图片切换
Oct 22 Javascript
深入分析js的冒泡事件
Dec 05 Javascript
jQuery实现的动态伸缩导航菜单实例
May 07 Javascript
js/jq仿window文件夹框选操作插件
Mar 08 Javascript
jquery DataTable实现前后台动态分页
Jun 17 jQuery
微信小程序开发注意指南和优化实践(小结)
Jun 21 Javascript
解决layui数据表格table的横向滚动条显示问题
Sep 04 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
JavaScript This指向问题详解
Nov 25 Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 Javascript
如何利用vue实现波谱拟合详解
Nov 05 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
PHP定时更新程序设计思路分享
2014/06/10 PHP
php操作mongoDB实例分析
2014/12/29 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
python3实现基于用户的协同过滤
2018/05/31 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
快餐店的创业计划书范文
2014/01/29 职场文书
致200米运动员广播稿
2014/02/06 职场文书
物流专员岗位职责
2014/02/17 职场文书
高中生的自我评价
2014/03/04 职场文书
英文请假条
2014/04/11 职场文书
个人简历自荐信
2014/06/26 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
新员工试用期自我评价
2015/03/10 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android
什么是Python装饰器?如何定义和使用?
2022/04/11 Python
Python之matplotlib绘制饼图
2022/04/13 Python
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers