本文實例講述了javascript模擬map輸出與去除重復項的方法。分享給大家供大家參考。具體方法如下:
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));
希望本文所述對大家的javascript程序設計有所幫助。