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 扩展对input的一些操作方法
Oct 30 Javascript
高亮显示web页表格行的javascript代码
Nov 19 Javascript
JavaScript在多浏览器下for循环的使用方法
Nov 07 Javascript
Jquery获取和修改img的src值的方法
Feb 17 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
May 15 Javascript
js+css实现select的美化效果
Mar 24 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
JS调用安卓手机摄像头扫描二维码
Oct 16 Javascript
layui prompt 设置允许空白提交的方法
Sep 24 Javascript
原生js拖拽实现图形伸缩效果
Feb 10 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 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(3) php 函数
2010/02/15 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
php中chdir()函数用法实例
2014/11/13 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
DOM相关内容速查手册
2007/02/07 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
浅析js绑定事件的常用方法
2016/05/15 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
Python 正则表达式入门(初级篇)
2016/12/07 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
python write无法写入文件的解决方法
2019/01/23 Python
Python使用crontab模块设置和清除定时任务操作详解
2019/04/09 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
基于python实现查询ip地址来源
2020/06/02 Python
python和c语言哪个更适合初学者
2020/06/22 Python
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
东方红海科技面试题软件测试方面
2012/02/08 面试题
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
幼儿教师求职信
2014/05/24 职场文书
工作岗位职责范本
2015/02/15 职场文书
初三语文教学反思
2016/03/03 职场文书
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers