1. 程式人生 > >JavaScript筆記 - Object對象特性的應用

JavaScript筆記 - Object對象特性的應用

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對象特性的應用