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 相关文章推荐
一段好玩的JavaScript代码
Dec 01 Javascript
jquery插件开发方法(初学者)
Feb 03 Javascript
js实现的map方法示例代码
Jan 13 Javascript
js 获取时间间隔实现代码
May 12 Javascript
html文本框提示效果的示例代码
Jun 28 Javascript
jquery 插件实现多行文本框[textarea]自动高度
Mar 04 Javascript
jquery实现先淡出再折叠收起的动画效果
Aug 07 Javascript
JS正则替换掉小括号及内容的方法
Nov 29 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
Sep 21 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
Feb 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
员工考核管理制度
2014/02/02 职场文书
爱国演讲稿400字
2014/05/07 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
银行金融服务方案
2014/06/11 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
自我推荐信怎么写
2015/03/24 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
MySQL一些常用高级SQL语句
2021/07/03 MySQL