码迷,mamicode.com
首页 > 编程语言 > 详细

javacript模拟map输出与去除重复项

时间:2015-02-09 00:51:20      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:map   javascript   

1.Javascriptmap输出

                         function Map(){
					
					// private 
					var obj = {} ;// 空的对象容器,承装键值对
					
					// put 方法
					this.put = function(key , value){
							obj[key] = value ;		// 把键值对绑定到obj对象上
					}
					
					// size 方法 获得map容器的个数
					this.size = function(){
							var count = 0 ; 
							for(var attr in obj){
								count++;
							}
							return count ; 
					}
					
					// get 方法 根据key 取得value
					this.get = function(key){
						if(obj[key] || obj[key] === 0 || obj[key] === false){
							return obj[key];
						} else {
							return null;
						}
					}
					
					//remove 删除方法
					this.remove = function(key){
						if(obj[key] || obj[key] === 0 || obj[key] === false){
							delete obj[key];						
						}
					}
					
					// eachMap 变量map容器的方法
					this.eachMap = function(fn){
							for(var attr in obj){
								fn(attr, obj[attr]);
							}
					}
					
					
				}
			
				//模拟java里的Map
				var m = new  Map();
				m.put('01' , 'abc');
				m.put('02' , false) ;
				m.put('03' , true);
				m.put('04' , new Date());
				
				//alert(m.size());
				
				//alert(m.get('02'));
				//m.remove('03');
				//alert(m.get('03'));
				
				m.eachMap(function(key , value){
					 alert(key +" :"+ value);
			});
2.去除map中重复项

var arr = [2,1,2,10,2,3,5,5,1,10,13];	//object
			
			
			// js对象的特性 : 在js对象中 key 是永远不会重复的 
			/*
			var obj = new Object();
			obj.name = 'z3';
			obj.age = 20 ;
			//alert(obj.name);
			obj.name = 'w5';
			alert(obj.name);
			*/
			
			// 1 把数组转成一个js的对象
			// 2 把数组中的值,变成js对象当中的key
			// 3 把这个对象 再还原成数组
			
			// 把数组转成对象
			function toObject(arr){
				var obj = {} ; // 私有的对象
				var j ;
				for(var i=0 , j= arr.length ; i<j; i++){
						obj[arr[i]] = true ;
				}
				return obj ;
			}
			
			// 把这个对象转成数组
			function keys(obj){
				var arr = [] ; // 私有对象
				for(var attr in obj){
					if(obj.hasOwnProperty(attr)){		//YUI底层代码
						arr.push(attr);
					}
				}
				return arr ;
			}
			
			//综合的方法 去掉数组中的重复项
			function uniq(newarr){
				return keys(toObject(newarr));
			}
			
			alert(uniq(arr));
			


javacript模拟map输出与去除重复项

标签:map   javascript   

原文地址:http://blog.csdn.net/cuiwjava/article/details/43651525

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!