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 相关文章推荐
借用Google的Javascript API Loader来加速你的网站
Jan 28 Javascript
JQuery 前台切换网站的样式实现
Jun 22 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
Aug 28 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
Jan 21 Javascript
js制作网站首页图片轮播特效代码
Aug 30 Javascript
js常用DOM方法详解
Feb 04 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
Jun 13 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
Feb 05 Javascript
Angular Renderer (渲染器)的具体使用
May 03 Javascript
详解Vue调用手机相机和相册以及上传
May 05 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
Aug 11 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
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
angular4笔记系列之内置指令小结
2018/11/09 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
python executemany的使用及注意事项
2017/03/13 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
使用Python的turtle模块画国旗
2019/09/24 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
详解python datetime模块
2020/08/17 Python
pandas 数据类型转换的实现
2020/12/29 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
傲盾软件面试题
2015/08/17 面试题
计算机专业自我鉴定
2013/10/15 职场文书
历史学专业推荐信
2013/11/06 职场文书
人事专员岗位职责
2013/11/20 职场文书
先进个人事迹材料
2014/01/25 职场文书
科研课题实施方案
2014/03/18 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
公司委托书范本5篇
2014/09/20 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
工地材料员岗位职责
2015/04/11 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书