DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> javascript模擬map輸出與去除重復項的方法
javascript模擬map輸出與去除重復項的方法
編輯:關於JavaScript     

本文實例講述了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程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved