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 相关文章推荐
表单提交验证类
Jul 14 Javascript
javascript代码加载优化方法
Jan 30 Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 Javascript
用html+css+js实现的一个简单的图片切换特效
May 28 Javascript
javascript中with()方法的语法格式及使用
Aug 04 Javascript
jQuery点缩略图弹出层显示大图片
Feb 13 Javascript
Bootstrap每天必学之轮播(Carousel)插件
Apr 25 Javascript
Bootstrap基本组件学习笔记之面板(14)
Dec 08 Javascript
获取IE浏览器Cookie信息的方法
Jan 23 Javascript
解决vue处理axios post请求传参的问题
Mar 05 Javascript
p5.js绘制创意自画像
Nov 04 Javascript
React实现todolist功能
Dec 28 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
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
css样式标签和js语法属性区别
2013/11/06 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
对python GUI实现完美进度条的示例详解
2018/12/13 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
python dataframe NaN处理方式
2019/12/26 Python
Python守护进程实现过程详解
2020/02/10 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
四年大学自我鉴定
2014/02/17 职场文书
体育委员竞选稿
2015/11/21 职场文书
施工安全协议书
2016/03/22 职场文书
亲情作文之母爱
2019/09/25 职场文书
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL