js 实现map功能
来源:互联网 发布:php app 用户注册源码 编辑:程序博客网 时间:2024/06/04 19:37
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <title> New Document </title> <meta name="Generator" content="EditPlus"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> </head> <body> <input type="button" value="test" onclick="testMap()"> </body></html><script>Array.prototype.remove = function(s) { for (var i = 0; i < this.length; i++) { if (s == this[i]){ this.splice(i, 1); break; } } } /** * 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','Comtop'); 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); } </script>
0 0
- Js实现Map功能
- js 实现map功能
- js实现map功能
- js 里map功能的实现
- JS 自定义对象实现Java中的Map对象功能
- js模仿java的Map集合,实现功能
- JS 自定义对象实现Java中的Map对象功能
- js模仿java的Map集合,实现功能
- MAP对象,实现MAP功能
- map实现排序功能
- JavaScript实现Map功能
- Js实现Map对象
- Js实现Map对象
- js实现Map
- JS实现MAP
- js 实现MAP方法
- JS实现Map对象
- js实现map对象
- 224-m-Basic Calculator
- javascript arguments
- [Leetcode]-Contains Duplicate HashTbale重解
- ArcGIS栅格计算器
- ubuntu15.04安装与配置之搜狗输入法的安装
- js 实现map功能
- UVa 455 周期串
- 12堂思维课的读后点滴
- 【Java】若MxN矩阵中某个元素为0, 则将其所在的行与列清零
- Wifi连接Android手机调试√
- javascript arguments
- opencv cvSobel()以及Scharr滤波器
- MySQL Python Windows下的安装经历(失败)
- IOS中定时器NSTimer的开启与关闭