2012-07-09 46 views
11

我對Javascript的詞典有疑問。我有一個字典,其中鍵值對是這樣動態添加的:如何在javascript字典中使用鍵值查找值

var Dict = [] 
var addpair = function (mykey , myvalue) [ 
    Dict.push({ 
    key: mykey, 
    value: myvalue 
    }); 
} 

我將調用此函數並將其傳遞給不同的鍵和值。但是現在我想根據密鑰檢索我的價值,但我無法這樣做。任何人都可以告訴我正確的方法嗎?

var givevalue = function (my_key) { 
    return Dict["'" +my_key +"'"]   // not working 
    return Dict["'" +my_key +"'"].value // not working 
} 

至於我的鑰匙是一個變量,我不能使用Dict.my_key

感謝。

回答

17

JavaScript中的數組不使用字符串作爲鍵。您可能會發現值在那裏,但關鍵是一個整數。

如果您Dict成一個對象,這將工作:

var Dict = {}; 
var addpair = function (my_key, my_value) { 
    Dict[my_key] = my_value; 
} 
var givevalue = function (my_key) { 
    return Dict[my_key]; 
} 

my_key變量已經是一個字符串,所以你並不需要更多的報價。

+0

嗨,我可以通過找到關鍵使用價值做到相反 – 2012-07-09 10:49:50

+0

並不那麼容易。您需要做一個循環,嘗試對象中的每個值,直到找到合適的值,然後返回該密鑰。問題是可能有兩個值相同,所以您需要將代碼放入addpair()以防止重複。 – 2012-07-09 10:53:42

+0

Javascript中的數組* *使用字符串作爲鍵,並且任何您嘗試用作數組索引的東西都將被強制轉換爲幕後的字符串。您可以通過使用'toString'方法創建一個對象並將其用作數組索引來確認。它將使用任何'toString'方法返回。 – 2012-07-09 11:01:23

相關問題