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 相关文章推荐
div层的移动及性能优化
Nov 16 Javascript
ajax与302响应代码测试
Oct 23 Javascript
js中arguments的用法(实例讲解)
Nov 30 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
Jun 19 Javascript
js绘制圆形和矩形的方法
Aug 05 Javascript
Treegrid的动态加载实例代码
Apr 29 Javascript
jQuery.datatables.js插件用法及api实例详解
Oct 28 Javascript
react同构实践之实现自己的同构模板
Mar 13 Javascript
浅谈React Native 传参的几种方式(小结)
May 21 Javascript
javascript中的闭包概念与用法实践分析
Jul 26 Javascript
详解vue 命名视图
Aug 14 Javascript
vue实现购物车选择功能
Jan 10 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
人族 TERRAN 概述
2020/03/14 星际争霸
discuz7 phpMysql操作类
2009/06/21 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
jQuery live
2009/05/15 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
django使用admin站点上传图片的实例
2019/07/28 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
小学教师的个人自我鉴定
2013/10/24 职场文书
青春奉献演讲稿
2014/05/08 职场文书
找工作求职信
2014/07/07 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
学生通报表扬范文
2015/05/04 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB