时间:2021-05-26
不废话了,直接贴代码了。
代码一:
var map=new Map();map.put("a","A");map.put("b","B");map.put("c","C");map.get("a"); //返回:Amap.entrySet() // 返回Entity[{key,value},{key,value}]map.containsKey('kevin') //返回:falsefunction Map() { this.keys = new Array(); this.data = new Object(); /** * 放入一个键值对 * @param {String} key * @param {Object} value */ this.put = function(key, value) { if(this.data[key] == null){ this.keys.push(key); this.data[key] = value; }else{ this.data[key]=this.data[key]; } return true; }; /** * 获取某键对应的值 * @param {String} key * @return {Object} value */ this.get = function(key) { return this.data[key]; }; /** * 删除一个键值对 * @param {String} key */ this.remove = function(key) { for(var i=0;i<this.keys.length;i++){ if(key===this.keys[i]){ var del_keys= this.keys.splice(i,1); for(k in del_keys){ this.data[k] = null; } return true; } } return false; }; /** * 遍历Map,执行处理函数 * * @param {Function} 回调函数 function(key,value,index){..} */ this.each = function(fn){ if(typeof fn != 'function'){ return; } var len = this.keys.length; for(var i=0;i<len;i++){ var k = this.keys[i]; fn(k,this.data[k],i); } }; /** * 获取键值数组 * @return entity[{key,value},{key,value}] */ this.entrySet = function() { var len = this.keys.length; var entrys = new Array(len); for (var i = 0; i < len; i++) { entrys[i] = { key : this.keys[i], value : this.data[this.keys[i]] }; } return entrys; }; /** * 判断Map是否为空 */ this.isEmpty = function() { return this.keys.length == 0; }; /** * 获取键值对数量 */ this.size = function(){ return this.keys.length; }; this.containsKey=function(key){ return this.keys.filter(function(v){ if(v===key){ return key; } }).length>0; }; /** * 重写toString */ this.toString = function(){ var s = "{"; for(var i=0;i<this.keys.length;i++){ var k = this.keys[i]; s += k+"="+this.data[k]; if(this.keys.length>i+1){ s+=',' } } s+="}"; return s; }; /** * 解析字符串到Map * {a=A,b=B,c=B,} */ this.parserStringAndAddMap=function(str){ var count=0; if(str && str.length>0){ str=str.trim(); var startIndex=str.indexOf("{"),endIndex=str.lastIndexOf("}"); if(startIndex!==-1 && endIndex!==-1){ str=str.substring(startIndex+1,endIndex); var arrs= str.split(","); for(var i=0;i<arrs.length;i++){ var kv=arrs[i].trim(); if(kv.length>0 && kv.indexOf("=")!==-1){ var kv_arr=kv.split("="); if(kv_arr.length==2){ if(this.put(kv_arr[0].trim(),kv_arr[1].trim())){ count++; }else{ console.error('error: kv:'+kv); } } } } }else{ console.log("data error:"+str); } }else{ console.log('data is not empty'); } return count; }; }代码二:
以上内容通过两段代码给大家分享了JavaScript中实现Map,希望大家喜欢。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了JavaScript中利用Array和Object实现Map的方法。分享给大家供大家参考。具体如下:昨天突然看到以前别人用JavaScript实现
复制代码代码如下:/**MAP对象,实现MAP功能**接口:*size()获取MAP元素个数*isEmpty()判断MAP是否为空*clear()删除MAP所有
复制代码代码如下:/**MAP对象,实现MAP功能**接口:*size()获取MAP元素个数*isEmpty()判断MAP是否为空*clear()删除MAP所有
对于多线程的使用,我们经常是用thread来创建,比较繁琐.在Python中,可以使用map函数简化代码。map可以实现多任务的并发简单说明map()实现多线程
本文实例为大家分享了JavaScript实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下index.html代码如下贪吃蛇index.css代码如下#map{