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

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

这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容!

 

这里Key,你要使用String类型,和Java一样,你可以进行一些增加,删除,修改,获得的操作。

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

Java代码    收藏代码
  1. /** 
  2.  * @version 1.0 
  3.  * @author cuisuqiang@163.com 
  4.  * 用于实现页面 Map 对象,Key只能是String,对象随意 
  5.  */  
  6. var Map = function(){  
  7.     this._entrys = new Array();  
  8.       
  9.     this.put = function(key, value){  
  10.         if (key == null || key == undefined) {  
  11.             return;  
  12.         }  
  13.         var index = this._getIndex(key);  
  14.         if (index == -1) {  
  15.             var entry = new Object();  
  16.             entry.key = key;  
  17.             entry.value = value;  
  18.             this._entrys[this._entrys.length] = entry;  
  19.         }else{  
  20.             this._entrys[index].value = value;  
  21.         }          
  22.     };  
  23.     this.get = function(key){  
  24.         var index = this._getIndex(key);  
  25.         return (index != -1) ? this._entrys[index].value : null;  
  26.     };  
  27.     this.remove = function(key){  
  28.         var index = this._getIndex(key);  
  29.         if (index != -1) {  
  30.             this._entrys.splice(index, 1);  
  31.         }  
  32.     };  
  33.     this.clear = function(){  
  34.         this._entrys.length = 0;;  
  35.     };  
  36.     this.contains = function(key){  
  37.         var index = this._getIndex(key);  
  38.         return (index != -1) ? true : false;  
  39.     };  
  40.     this.getCount = function(){  
  41.         return this._entrys.length;  
  42.     };  
  43.     this.getEntrys =  function(){  
  44.         return this._entrys;  
  45.     };  
  46.    this._getIndex = function(key){  
  47.         if (key == null || key == undefined) {  
  48.             return -1;  
  49.         }  
  50.         var _length = this._entrys.length;  
  51.         for (var i = 0; i < _length; i++) {  
  52.             var entry = this._entrys[i];  
  53.             if (entry == null || entry == undefined) {  
  54.                 continue;  
  55.             }  
  56.             if (entry.key === key) {//equal  
  57.                 return i;  
  58.             }  
  59.         }  
  60.         return -1;  
  61.     };  
  62. }  

 

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

Java代码    收藏代码
  1. // 自定义Map对象  
  2. var map = new Map();  
  3. map.put("a","a");  
  4. alert(map.get("a"));  
  5. map.put("a","b");  
  6. alert(map.get("a"));  

 

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

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

<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值