JavaScript中实现Map的示例代码
网络编程 2021-07-04 21:03www.168986.cn编程入门
本篇文章给大家介绍javascript中实现map的示例代码,代码写的简单易懂,可以获取、删除键值,刚兴趣的朋友跟着狼蚁SEO长沙网络推广一起学习吧。
不废话了,直接贴代码了。
代码一
var map=new Map(); map.put("a","A");map.put("b","B");map.put("c","C"); map.get("a"); //返回A map.entrySet() // 返回Entity[{key,value},{key,value}] map.containsKey('kevin') //返回:false
function 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; }; }
代码二
Array.prototype.remove = function(s) { for (var i = 0; i < this.length; i++) { if (s == this[i]) this.splice(i, 1); } } / Simple Map var m = new Map(); m.put('key','value'); ... var s = ""; m.each(function(key,value,index){ s += index+":"+ key+"="+value+"\n"; }); alert(s); @author dewitt @date 2008-05-24 / function 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; }; / 获取某键对应的值 @param {String} key @return {Object} value / this.get = function(key) { return this.data[key]; }; / 删除一个键值对 @param {String} key / this.remove = function(key) { this.keys.remove(key); this.data[key] = null; }; / 遍历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); } }; / 获取键值数组(类似Java的entrySet()) @return 键值对象{key,value}的数组 / this.entrys = 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[i] }; } return entrys; }; / 判断Map是否为空 / this.isEmpty = function() { return this.keys.length == 0; }; / 获取键值对数量 / this.size = function(){ return this.keys.length; }; / 重写toString / this.toString = function(){ var s = "{"; for(var i=0;i<this.keys.length;i++,s+=','){ var k = this.keys[i]; s += k+"="+this.data[k]; } s+="}"; return s; }; }
function testMap(){ var m = new Map(); m.put('key1','Com'); m.put('key2','南方电网'); m.put('key3','景新花园'); alert("init:"+m); m.put('key1','康拓普'); alert("set key1:"+m); m.remove("key2"); alert("remove key2: "+m); var s =""; m.each(function(key,value,index){ s += index+":"+ key+"="+value+"\n"; }); alert(s); }
以上内容通过两段代码给大家分享了JavaScript中实现Map,希望大家喜欢。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程