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判断浏览器的比较全的代码
Feb 13 Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 Javascript
javascript中字符串的定义示例代码
Dec 19 Javascript
使用javascript控制cookie显示和隐藏背景图
Feb 12 Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 Javascript
超链接的禁用属性Disabled使用示例
Jul 31 Javascript
浅谈JavaScript Date日期和时间对象
Dec 29 Javascript
JavaScript tab选项卡插件实例代码
Feb 23 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
Bootstrap基本模板的使用和理解1
Dec 14 Javascript
jquery ui sortable拖拽后保存位置
Apr 27 jQuery
js定时器实现倒计时效果
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
关于PHP中Object对象的笔记分享
2011/06/28 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
vue刷新和tab切换实例
2018/02/11 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python 实现归并排序算法
2012/06/05 Python
python中__slots__用法实例
2015/06/04 Python
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
Python实现定时任务
2017/02/08 Python
Python编程argparse入门浅析
2018/02/07 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python读取中文txt文本的方法
2018/04/12 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
python3实现字符串操作的实例代码
2019/04/16 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
python中remove函数的踩坑记录
2021/01/04 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
生日寿宴答谢词
2014/01/19 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js