2015-04-20 25 views
0

我有一個如下所示的數組:[["key1", "value1"], ["key2", "value2"]]。我需要一個看起來像這樣的字典:{"key1": "value1", "key2": "value2"}。在Python中,我可以將數組傳遞給dict初始值設定項。是否有一些等同的方式在Javascript中做到這一點,或者我堅持初始化一個空字典,並一次一個地添加鍵/值對字典?從數組對中初始化Javascript字典

+0

可能的重複http://stackoverflow.com/questions/26454655/convert-javascript-array-of-2-element-arrays-into-object-key-value-pairs –

+0

@PaulFitzgerald:很好,你對。 –

回答

2

它實際上與Array#reduce非常簡單:

var obj = yourArray.reduce(function(obj, entry) { 
    obj[entry[0]] = entry[1]; 
    return obj; 
}, {}); 

Array#reduce遍歷數組中的條目,反覆將它們與一個「蓄電池」你有第二個參數初始化沿功能。

也許Array#forEach會在這種情況下,更清晰,更簡潔:

var obj = {}; 
yourArray.forEach(function(entry) { 
    obj[entry[0]] = entry[1]; 
}); 

或者有簡單for循環:

var obj = {}; 
var index, entry; 
for (index = 0; index < yourArray.length; ++index) { 
    entry = yourArray[index]; 
    obj[entry[0]] = entry[1]; 
} 
1

假設你有一個pairs變量,你可以使用一個map()功能解決方法(不太優雅,因爲地圖應該用於其他範圍):

var convertedDict = {}; 
pairs.map(function(pair) { 
    convertedDict[pair[0]] = pair[1]; 
});