JS自定义对象实现Java中Map对象功能的方法


Posted in Javascript onJanuary 20, 2015

本文实例讲述了JS自定义对象实现Java中Map对象功能的方法。分享给大家供大家参考。具体分析如下:

Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。

这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容!
 
这里Key,你要使用String类型,和Java一样,你可以进行一些增加,删除,修改,获得的操作。

使用很简单,我先把工具类给大家看下:

/** 

 * @version 1.0 

 * 用于实现页面 Map 对象,Key只能是String,对象随意 

 */  

var Map = function(){  

    this._entrys = new Array();  

      

    this.put = function(key, value){  

        if (key == null || key == undefined) {  

            return;  

        }  

        var index = this._getIndex(key);  

        if (index == -1) {  

            var entry = new Object();  

            entry.key = key;  

            entry.value = value;  

            this._entrys[this._entrys.length] = entry;  

        }else{  

            this._entrys[index].value = value;  

        }          

    };  

    this.get = function(key){  

        var index = this._getIndex(key);  

        return (index != -1) ? this._entrys[index].value : null;  

    };  

    this.remove = function(key){  

        var index = this._getIndex(key);  

        if (index != -1) {  

            this._entrys.splice(index, 1);  

        }  

    };  

    this.clear = function(){  

        this._entrys.length = 0;;  

    };  

    this.contains = function(key){  

        var index = this._getIndex(key);  

        return (index != -1) ? true : false;  

    };  

    this.getCount = function(){  

        return this._entrys.length;  

    };  

    this.getEntrys =  function(){  

        return this._entrys;  

    };  

   this._getIndex = function(key){  

        if (key == null || key == undefined) {  

            return -1;  

        }  

        var _length = this._entrys.length;  

        for (var i = 0; i < _length; i++) {  

            var entry = this._entrys[i];  

            if (entry == null || entry == undefined) {  

                continue;  

            }  

            if (entry.key === key) {//equal  

                return i;  

            }  

        }  

        return -1;  

    };  

}

 
如果你不懂Js中对象的创建等一些基础知识,自己可以网上查一下。
// 自定义Map对象  

var map = new Map();  

map.put("a","a");  

alert(map.get("a"));  

map.put("a","b");  

alert(map.get("a"));

 
先弹出 a 后面弹出 b ,因为后面的会覆盖前面的!

其他方法大家自己写写看!

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
PJBlog插件 防刷新的在线播放器
Oct 25 Javascript
JavaScript eval() 函数介绍及应用示例
Jul 29 Javascript
使用JavaScript的AngularJS库编写hello world的方法
Jun 23 Javascript
JS实现可调整倒计时间代码分享
Aug 18 Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 Javascript
详解基于webpack和vue.js搭建开发环境
Apr 05 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
Sep 30 Javascript
一步步教你利用Docker设置Node.js
Nov 20 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 Javascript
JavaScript实现拖动对话框效果的实现代码
Oct 12 Javascript
JavaScript数组Array对象增加和删除元素方法总结
Jan 20 #Javascript
DOM基础教程之使用DOM + Css
Jan 20 #Javascript
jquery+ajax实现跨域请求的方法
Jan 20 #Javascript
嵌入式iframe子页面与父页面js通信的方法
Jan 20 #Javascript
javascript浏览器窗口之间传递数据的方法
Jan 20 #Javascript
用队列模拟jquery的动画算法实例
Jan 20 #Javascript
jQuery 处理页面的事件详解
Jan 20 #Javascript
You might like
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
用户的详细注册和判断
2006/10/09 PHP
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
python中常用的九种预处理方法分享
2016/09/11 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
简单说说tomcat的配置
2013/05/28 面试题
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
质量主管工作职责
2014/09/26 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
导游词之峨眉山
2019/12/16 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers