`
AngelAndAngel
  • 浏览: 230903 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一个js简单模拟Map结构

阅读更多
   一个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;
		}

		//判断是否包含key
		this.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);
	})


	
 //-->

     

   
分享到:
评论

相关推荐

    js模拟Map和StringBuilder

    js模拟Map和StringBuilder数据结构

    javaScript模拟的HashMap数据结构的对象

    javaScript模拟的HashMap数据结构,可以方便的put和get。几乎和Java中HashMap类的功能一模一样。非常好用的!

    dailyLearn:javascript,实现数据结构和算法题

    dailyLearn javascript实现数据结构题 使用javascript实现经典的数据结构面试题。练手和温习 水平有限,如有缺漏,望见谅! 文件结构: 1)ADT ———— 抽象数据类型(ADT) ...15模拟实现map, red

    fackAchieve:手写ES6高级函数,手写Promise,模拟数据结构 ,手写常用工具库函数及框架源码模拟实现

    手写 es6 函数,Promise 特性,lodash 库的函数实现,模拟 vue,React 等前端框架的实现和原理的理解。 functions 文件夹 手动实现各种函数,包括不限于 ES6 等函数的方法 内容对应表 Array 方法名称(name) 位置...

    搜索引擎蜘蛛模拟器

    HTTrack能跟随基本的JavaScript,或者Applet、Flash中的链接,但是对于复杂的链接(使用函数和表达式创建的链接)或者服务器端的Image Map(Image Map)则无能为力。 支持操作系统:Windows 2000 to Windows 10 and ...

    DataGridTree.rar

    动态表格,根据后端返回的行,列,内容组装表格: ...Map: 数据存储,模拟java中的Map TreeNode:行和列的数据模型,用树结构来存储 DataGrid: 表格js,实现对数据的解析,表格的装组输入,及事件的绑定

    JavaScript Table行定位效果

    克隆一个元素用cloneNode就可以了,它有一个bool参数,表示克隆是否包含子节点。 程序第一步就是克隆原table: this._oTable = $(table);//源table this._nTable = this._oTable.cloneNode(false);//新table this._...

    react-router-mobx-antd-webpack-gulp:基于React,React路由器,Mobx,Antd构建的管理后台演示

    Mock.js(模拟数据服务) Babel(ES6 / 7代码转译浏览器重置) Webpack(打包工具) React Amap(高德地图) Visjs(拓扑图) 目录结构 . ├── config # webpack 配置目录 ├── res # 静态文件目录 └── ...

    Android 开发技巧

    9.31、把文件内容读出到一个字符串 245 9.32、扫描WIFI热点演示实例教程 246 9.33、调用GOOGLE搜索 249 9.34、调用浏览器 载入某网址 249 9.35、获取 IP地址 249 9.36、从输入流中获取数据并以字节数组返回 250 9.37...

    Android开发资料合集-World版!

    9.31、把文件内容读出到一个字符串 245 9.32、扫描WIFI热点演示实例教程 246 9.33、调用GOOGLE搜索 249 9.34、调用浏览器 载入某网址 249 9.35、获取 IP地址 249 9.36、从输入流中获取数据并以字节数组返回 250 9.37...

    python入门到高级全栈工程师培训 第3期 附课件代码

    06 django的一个简单应用 07 django静态文件之static 08 django的url控制系统 09 django的urlConf补充 第50章 01 django之视图函数的介绍 02 django视图之redirec 03 django模板之变量 04 django模板之过滤器 05 ...

    SharedBikes:微信小程序

    【项目概览】【使用的工具及技术】工具:微信开发者工具、STS(Spring Tool Suite)技术:SpringBoot+redis+MongoDB【实现的功能】调用微信map组件,获取用户当前的地理位置;可以在地图任意位置添加单车,利用GEO_2...

    互联网创意产品众筹平台

    │ 14-zTree树形结构-Demo5-一次加载数据,Map集合解决双层for性能问题 │ 0 D% f8 ?. j2 W( U' z, e ├─众筹项目-第08天《Atcrowdfunding》/ l+ U( T7 u' L$ H │ ├─代码 , H5 W$ u) [& ]2 g4 P! v* S- G │ ├─...

    Cocos2D-X游戏开发技术精解

    7.8.1 创建和摧毁一个世界 210 7.8.2 让世界运转起来 211 7.8.3 探索世界 212 7.8.5 AABB查询 213 7.8.6 光线投射(Ray Casts) 214 7.9 形状Shapes 216 7.9.1 碰撞模块 216 7.9.2 形状Shape的作用 216 7.9.3 圆形...

Global site tag (gtag.js) - Google Analytics