时间:2016.04.25 发布人:hjhd46001
已解决问题
谷歌hjhd46001用户在2016.04.25提交了关于“
洪崖洞j**ascript实现简单的Map示例介绍”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-12-04T07:34:31。希望大家能够帮助她。
详细问题描述及疑问:期待您的答案,当代劳模,所有人都应该向你学习
!
希望以下的回答,能够帮助你。
第1个回答
用户名:myoaiaba
本文为大家介绍下使用j**ascript实现简单的Map,可以对map进行获取、判断、删除、增加等等,感兴趣的朋友可以了解下
代码如下
:/**MAP对象,实现MAP功能**接口:*size()获取MAP元素个数*isEmpty()判断MAP是否为空*clear(问答)删除MAP所有元素*put(key,value)向MAP中增加元素(key,value)*remove(key)删除指定KEY的元素,成功返回True,失败返回False*get(key)获取指定KEY的元联落怀及油怎丰色来候素值VALUE,失败返回**LL*element(index)获取指定索引的元素(使用element.key,element.value获取KE马怀Y和VALUE),失败返回NULL*containsKey(key能重县度带都)判断MAP中是否含有指定KEY的元素*containsValue(value)判断MAP中是否含有指定VALUE的元素*values()获取MAP中所有VA吧移速烈失王划布LUE的数组(ARRAY)*keys()获取MAP中所有KEY的数组(ARRAY)**例子:*varmap=newMap();**map.put("key","value");*varval=map.get("key")*……**革/functionMap(){this.elements=new并耐可史广织Array();//获取MAP元素个数t钢his.size=function(){returnthis.elements.length;}征定区黑困吃右企;//判断MAP是否为空t洋his.isEmpty=function(){return(this.装elements.length<1);};//删除MAP所有元素this.clear=function(){this.elements=newArray();};//向MAP中增加元素(key,value)this.put=function(_key,_value){this.elements.push({key:_key,value:_value});};//删除指定KEY的元素,成功返回True,失败返回Falsethis.removeByKey=function(_key){varbln=false;try{for(i=0;i<this.elements.length;i++){if(this.ele状九编所脱些孙容必试ments[i].key==_key){this.elements.splice(i几职买并多传话止居设刑,1);retu远在rntrue;}}}catch(e){bln=false;}returnbln;}曾送心;//删除指定另预供适威械刚贵报VALUE的元素,成功返回True,失败返回Falsethis.remo谁整苏选veByValue=function(_value){//removeByValueAndKeyvarbln=false;try{for(i=0;i<this.elements.length;i++){if(this.elements[i].value==_value){this.elements.splice(i,维紧走决策推拉对1);returntrue;}}}catch(e){bln=false;}returnbln;};//删除指定VALUE的元素,成功返回True,失败返回Falsethis.removeByValueAndKey=function(_key,_value){varbln=false;try{for(i=0;i<this.elements.length;i++){if(this.elements[i].value==_value&&this.elements[i].key==_key){this.elements.splice(i,1);returntrue;}}}catch(e){bln=false;}returnbln;};//获取指定KEY的元素值VALUE,失败返回**LLthis.get=function(_key){try{for(i=0;i<this.elements.length;i++){if(this.elements[i].key==_key){returnthis.elements[i].value;}}}catch(e){returnfalse;}returnfalse;};//获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回**LLthis.element=function(_index){if(_index<0||_index>=this.elements.length){return**ll;}returnthis.elements[_index];};//判断MAP中是否含有指定KEY的元素this.containsKey=function(_key){varbln=false;try{for(i=0;i<this.elements.length;i++){if(this.elements[i].key==_key){bln=true;}}}catch(e){bln=false;}returnbln;};//判断MAP中是否含有指定VALUE的元素this.containsValue=function(_value){varbln=false;try{for(i=0;i<this.elements.length;i++){if(this.elements[i].value==_value){bln=true;}}}catch(e){bln=false;}returnbln;};//判断MAP中是否含有指定VALUE的元素this.containsObj=function(_key,_value){varbln=false;try{for(i=0;i<this.elements.length;i++){if(this.elements[i].value==_value&&this.elements[i].key==_key){bln=true;}}}catch(e){bln=false;}returnbln;};//获取MAP中所有VALUE的数组(ARRAY)this.values=function(){vararr=newArray();for(i=0;i<this.elements.length;i++){arr.push(this.elements[i].value);}returnarr;};//获取MAP中所有VALUE的数组(ARRAY)this.valuesByKey=function(_key){vararr=newArray();for(i=0;i<this.elements.length;i++){if(this.elements[i].key==_key){arr.push(this.elements[i].value);}}returnarr;};//获取MAP中所有KEY的数组(ARRAY)this.keys=function(){vararr=newArray();for(i=0;i<this.elements.length;i++){arr.push(this.elements[i].key);}returnarr;};//获取key通过valuethis.keysByValue=function(_value){vararr=newArray();for(i=0;i<this.elements.length;i++){if(_value==this.elements[i].value){arr.push(this.elements[i].key);}}returnarr;};//获取MAP中所有KEY的数组(ARRAY)this.keysRemoveDuplicate=function(){vararr=newArray();for(i=0;i<this.elements.length;i++){varflag=true;for(varj=0;j<arr.length;j++){if(arr[j]==this.elements[i].key){flag=false;bre**;}}if(flag){arr.push(this.elements[i].key);}}returnarr;};}