1. 程式人生 > >用js實現java中的map

用js實現java中的map

今天閒來無事,照著別人的例子寫了一個小Demo。一眼看上去沒什麼難的,其實挺有意思的。

function Map(){
    this.array = new Array();
    var struct = function(key,value){
        this.key = key;
        this.value = value;
    } 
    var put = function(key,value){
        for(var i = 0 ; i < this.array.length;i++){
            if(this.array[i].key == key){
                this.array[i].value = value;
                return;
            }
        }
        this.array[this.array.length] = new struct(key,value);
    }
    
    var get = function(key){
        for(var i = 0 ; i < this.array.length;i++){
            if(this.array[i].key == key){
                return this.array[i].value
            }
        }
        return null;
    }
    this.put = put;
    this.get = get;
}

 首先,需要定義一個Map方法。在JavaScript中,方法本身也是一個物件。所以,我們可以通過new Map()的方式來得到這個物件。

 其次,我們可以在Map方法裡定義一些變數(array,put,get )作為Map物件的屬性,並通過this關鍵字來指定它們的關係。

 接著,我們需要定義一些方法(put,get),作為Map物件的行為。

 最後,把我們定義好的方法繫結到Map的屬性上就可以啦。

 最重要的一件事,就是需要注意一下key和value的儲存方式,是通過物件來儲存的。