六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 31|回复: 0

一个js简单模拟Map结构

[复制链接]

升级  48.67%

31

主题

31

主题

31

主题

秀才

Rank: 2

积分
123
 楼主| 发表于 2013-1-29 09:04:13 | 显示全部楼层 |阅读模式
一个js简易模拟Map结构,够用了。
      <!--var Map=function(){    this.mapArr={};this.arrlength=0;//假如有重复key,则不存入    this.put=function(key,value){  if(!this.containsKey(key)){   this.mapArr[key]=value;   this.arrlength=this.arrlength+1;  }}this.get=function(key){  return this.mapArr[key];}//传入的参数必须为Map结构this.putAll=function(map){           if(Map.isMap(map)){       var innermap=this;       map.each(function(key,value){      innermap.put(key,value);   })   }else{     alert("传入的非Map结构");   }}this.remove=function(key){              delete this.mapArr[key];      this.arrlength=this.arrlength-1;}this.size=function(){             return this.arrlength;}//判断是否包含keythis.containsKey=function(key){  return (key in this.mapArr);}//判断是否包含value        this.containsValue=function(value){              for(var p in this.mapArr){     if(this.mapArr[p]==value){    return true; }  }  return false;}//得到所有key 返回数组this.keys=function(){   var keysArr=[];   for(var p in this.mapArr){     keysArr[keysArr.length]=p;   }   return keysArr;}//得到所有value 返回数组this.values=function(){  var valuesArr=[];   for(var p in this.mapArr){     valuesArr[valuesArr.length]=this.mapArr[p];   }   return valuesArr;}this.isEmpty=function(){   if(this.size()==0){     return false;   }   return true;}this.clear=function(){             this.mapArr={}; this.arrlength=0;}//循环this.each=function(callback){        for(var p in this.mapArr){ callback(p,this.mapArr[p]);   }}        }//判断是否是map对象Map.isMap=function(map){  return  (map instanceof Map);}var map=new Map();map.put("afei",25);map.put("yaoming",31);map.put("pp",2);map.put("bill","55");map.remove("afei");    var map2=new Map();map2.put("003",333);map2.put("004",444);map.putAll(map2);    map.each(function(key,value){    alert(key+" : "+value);}) //-->
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表