/* name: Map.js author: WindDC date: 2006-10-27 content: 本程序用JS实现类拟JAVA中MAP对像的功能 */ function Node(key,value){//键值对对象 this.key=key; this.value=value; } function Map(){//Map类 this.nodes=new Array(); } Map.prototype.put=function(key,value){//往容器中加入一个键值对 for(var i=0;i<this.nodes.length;i++) if(this.nodes[i].key==key){//如果键值已存在,则put方法为更新已有数据 this.nodes[i].value=value; return; } var node=new Node(key,value); this.nodes.push(node); return; }//put Map.prototype.get=function(key){//获取指定键的值 for(var i=0;i<this.nodes.length;i++) if(this.nodes[i].key==key) return this.nodes[i].value; return null; }//get Map.prototype.size=function(){//获取容器中对象的个数 return this.nodes.length; }//size Map.prototype.clear=function(){//清空容器 while(this.nodes.length>0) this.nodes.pop(); }//clear Map.prototype.remove=function(key){//删除指定值 for(var i=0;i<this.nodes.length;i++) if(this.nodes[i].key==key){ var newNodes= new Array() ; if(i>0){ newNodes = newNodes.concat(this.nodes.slice(0,i),this.nodes.slice(i+1)); } else//删除的是第一个元素 { newNodes=this.nodes.slice(1); } this.nodes=newNodes; } }//remove Map.prototype.isEmpty=function(){//是否为空 if(this.nodes.length==0) return true; else return false; }//isEmpty Map.prototype.toString=function(){ var str="["; for(var i=0;i<this.nodes.length;i++){ if(i<this.nodes.length-1) str=str+this.nodes[i].key+","; else str=str+this.nodes[i].key; } str=str+"]"; return str; }//toString Map.prototype.toJson=function(){ var sjson="["; for(var i=0;i<this.nodes.length;i++){ if(i<this.nodes.length-1) sjson+="{\""+findObjKV(this.nodes[i].value)+"\"},"; else sjson+="{\""+findObjKV(this.nodes[i].value)+"\"}"; } sjson+="]"; return sjson; }//toJson Map.prototype.indexOf = function(i){ return this.nodes[i]; } //遍历对象key val function findObjKV(source){ var result=new Array(); for(k in source){ if(source.hasOwnProperty(k)){ result.push("\""+k+"\":\""+source[k]+"\""); } } return result.join(","); }
使用:
var conditionMap = new Map(); conditionMap.put(k,v);
相关推荐
js终于有了自己的Map了,类似与java的Map对象。此文件是源代码,亲测有类似于java的Map对象的类似方法:put(key,value)、get(key)、keys()、values()、size()、isEmpty()、remove(key)、clear()、element(index)、...
主要介绍了JS自定义对象实现Java中Map对象功能的方法,可实现类似Java中Map对象增删改查等功能,具有一定参考借鉴价值,需要的朋友可以参考下
java8流源码流8.js 流是一种有效的、功能性的方法,可以减少常见数组操作任务的样板代码。 您将开始更少的编码,更快的编码,并且代码不仅更易于阅读,而且更不容易出错。 安装 Stream8 在凉亭上使用"stream8": "~...
这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...
这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...
这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...
这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...
这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...
这两行代码执行后,原始的String对象中的内容到底变了没有? 24 32、是否可以继承String类? 25 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 25 34、String 和StringBuffer的...
这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...
这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...
这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer...
本文实例讲述了JavaScript 引用类型。...js数组更加类似java的map容器。长度可变,元素类型任意 数组长度随时可变!随时可以修改!(length属性) var arr1 = [123,324,true,'abc',1,4,5,new Date()]; arr1.len
一个JavaScript(NodeJS / Browser)库,可通过Overpass API轻松地从OpenStreetMap访问数据。 这些对象可以直接与LeafletJS一起使用或导出到GeoJSON。 数据将缓存在浏览器内存中(永久存储在LocalStorage中,将来...
动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例: Js代码 1. //定义一个对象 2. var obj = new Object(); 3. //动态创建...
从java中传递null值到javascript是没有任何危险性的,所以DWR将这个作为默认的converter,所以你自己不用再把这个converter添加到配置文件的部分中去. 基本类型的converter转换int,boolean,double等.当然还包括对应的...