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,有空研究学习下
Jan 25 Javascript
js 创建书签小工具之理论
Feb 25 Javascript
javascript中的document.open()方法使用介绍
Oct 09 Javascript
jQuery获取节点和子节点文本的方法
Jul 22 Javascript
JS实现控制表格内指定单元格内容对齐的方法
Mar 30 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
Dec 01 Javascript
简洁实用的BootStrap jQuery手风琴插件
Aug 31 Javascript
React实现点击删除列表中对应项
Jan 10 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
May 17 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
Mar 04 Javascript
Vue父组件如何获取子组件中的变量
Jul 24 Javascript
使用Vue 自定义文件选择器组件的实例代码
Mar 04 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
PHP 上传文件的方法(类)
2009/07/30 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
python实现网页自动签到功能
2019/01/21 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
python如何将多个PDF进行合并
2019/08/13 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
北京华建集团SQL面试题
2014/06/03 面试题
自荐书范文
2013/12/08 职场文书
小学生新学期寄语
2014/01/19 职场文书
气象学专业个人求职信
2014/03/15 职场文书
简单租房协议书
2014/04/09 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
主要领导对照检查材料
2014/08/26 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
锦旗赠语
2015/06/23 职场文书
初一军训感言
2015/08/01 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android