javascript 实现map集合
前几天项目上想用map集合一样的东西,简单拿对象拼了一下子,今天闲的慌实现一下
大家不要见笑
代码
varMap=function(){ /************基础变量**************/ varhashmap={}; varkeys=[]; varvals=[]; varentrys=[]; varsize=0; varindex={}; varEntry=function(key,value){ varentryKey=key; varentryValue=value; this.getKey=function(){ returnentryKey; }; this.getValue=function(){ returnentryValue; }; }; /************基本方法按字母排序**************/ this.clear=function(key){ hashmap[key]=undefined; vari=index[key]; entrys.splice(i,1); vals.splice(i,1); keys.splice(i,1); size--; }; this.entrySet=function(){ returnentrys; }; this.get=function(key){ returnhashmap[key]; }; this.isEmpty=function(){ if(hashmap)returntrue; returnfalse; }; this.keySet=function(){ returnkeys; }; this.put=function(key,value){ if(!this.get(key)){ entrys.push(newEntry(key,value)); keys.push(key); vals.push(value); index[key]=size; size++; }else{ vari=index[key]; entrys[i]=newEntry(key,value); vals[i]=value; } hashmap[key]=value; }; this.size=function(){ returnsize; }; this.values=function(){ returnvals; }; }; /************扩展方法**************/ Map.prototype={ containsKey:function(key){ if(this.get(key))returntrue; returnfalse; }, putAll:function(set){ for(vareinset){ if(set[e]){ this.put(e,set[e]); } } }, remove:function(key){ varv=this.get(key); this.clear(key); returnv; } }; varh=newMap(); h.put('a',10); h.put('b',11); h.put('c',3); h.put('d',5); console.info(h.size()); h.clear('a'); console.info(h.containsKey('a')); console.info(h.containsKey('b')); console.info(h.size()); console.log(h.entrySet()); console.log(h.keySet()); console.log(h.values()); for(variinh.entrySet()){ varobj=h.entrySet()[i]; console.log(obj.getKey()+":"+obj.getValue()); }
以上所述就是本文的全部内容了,希望大家能够喜欢。