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 相关文章推荐
Ext面向对象开发实践(续)
Nov 18 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
Jul 31 Javascript
JQueryEasyUI Layout布局框架的使用
Apr 08 Javascript
js获取select选中的option的text示例代码
Dec 19 Javascript
jquery实现网页查找功能示例分享
Feb 12 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
May 08 Javascript
JS中完美兼容各大浏览器的scrolltop方法
Apr 17 Javascript
微信小程序实现倒计时调用相机自动拍照功能
Jun 10 Javascript
解决vue.js 数据渲染成功仍报错的问题
Aug 25 Javascript
bootstrap tooltips在 angularJS中的使用方法
Apr 10 Javascript
Vue3.0中的monorepo管理模式的实现
Oct 14 Javascript
详解webpack的文件监听实现(热更新)
Sep 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
php生成txt文件标题及内容的方法
2014/01/16 PHP
php面向对象值单例模式
2016/05/03 PHP
html中table数据排序的js代码
2011/08/09 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
python的几种开发工具介绍
2007/03/07 Python
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
一份python入门应该看的学习资料
2018/04/11 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
python em算法的实现
2020/10/03 Python
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
求职自荐书范文
2013/12/04 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
端午节活动策划方案
2014/03/09 职场文书
淘宝好评语大全
2014/05/05 职场文书
校庆标语集锦
2014/06/25 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL