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 相关文章推荐
用JavaScript和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
javascript的原生方法获取数组中的最大(最小)值
Dec 19 Javascript
标题过长使用javascript按字节截取字符串
Apr 24 Javascript
10条建议帮助你创建更好的jQuery插件
May 18 Javascript
干货分享:让你分分钟学会javascript闭包
Dec 25 Javascript
javascript绘制漂亮的心型线效果完整实例
Feb 02 Javascript
你知道setTimeout是如何运行的吗?
Aug 16 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
Sep 17 Javascript
jQuery中的100个技巧汇总
Dec 15 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
解决vue2中使用axios http请求出现的问题
Mar 05 Javascript
微信小程序 slot踩坑的解决
Apr 01 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
php中iconv函数使用方法
2008/05/24 PHP
jQuery数组处理方法汇总
2011/06/20 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
详解node中创建服务进程
2017/05/09 Javascript
详谈ES6中的迭代器(Iterator)和生成器(Generator)
2017/07/31 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
跟老齐学Python之for循环语句
2014/10/02 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
详解Python是如何实现issubclass的
2019/07/24 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
python批量修改交换机密码的示例
2020/09/22 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
库房管理员岗位职责
2014/03/09 职场文书
洗发露广告词
2014/03/14 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
2015年思想品德教学工作总结
2015/07/22 职场文书
2016国培学习心得体会
2016/01/08 职场文书
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA