JavaScript筆記 - Object對象特性的應用
阿新 • • 發佈:2018-02-18
class this spa 還原 java font body prop post
可以依據js對象中key是永遠不會重復的原則,來模擬Map類型以及去除數組重復項。
1、模擬Map類型
(1)構造Map對象
function Map(){ //private var obj = {}; // 空的對象容器,存放鍵值對 //put方法 this.put = function (key,value){ obj[key] = value; } //get方法 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]; } } //size方法 this.size = function(){ var count= 0; for(var arr in obj){ count++; } return count; } //遍歷方法,采用回調函數的方式 this.eachMap = function(fn){ for(var arr in obj){ fn(arr,obj[arr]); } } }
(2)測試代碼
//模擬java裏的Map類型 var m = new Map(); m.put(‘01‘,‘sscs‘); alert(m.size()); alert(m.get(‘01‘)); m.remove(‘01‘); //遍歷對象元素,傳入的參數是一個函數m.eachMap(function(key,value){ alert(key +":"+value); });
2、去除數組重復項
(1)實現代碼
function unique(arr){ //第一步:把數組中的值,變成js對象中的key var obj = {}; //私有對象 for( var i = 0,j = arr.length;i<j;i++){ obj[arr[i]] = true; } //第二部:再把js對象還原成數組 var arr = [];//私有對象 for(var attr in obj){ if(obj.hasOwnProperty(attr)){ arr.push(attr); } } return arr; }
(2)測試程序
var arr = [1,1,3,4,5]; alert(unique(arr)); //顯示1,3,4,5
JavaScript筆記 - Object對象特性的應用