从对数组初始化Javascript字典

从对数组初始化Javascript字典,javascript,python,arrays,dictionary,Javascript,Python,Arrays,Dictionary,我有一个类似这样的数组:[[“key1”,“value1”],[“key2”,“value2”]]。我想要一本这样的字典:{“key1”:“value1”,“key2”:“value2”}。在Python中,我可以将数组传递给dict初始值设定项。在Javascript中是否有类似的方法来实现这一点,或者我是否被困在初始化一个空字典并将键/值对一次添加到字典中 使用数组#reduce实际上非常简单: var obj = yourArray.reduce(function(obj, entry)

我有一个类似这样的数组:
[[“key1”,“value1”],[“key2”,“value2”]]
。我想要一本这样的字典:
{“key1”:“value1”,“key2”:“value2”}
。在Python中,我可以将数组传递给
dict
初始值设定项。在Javascript中是否有类似的方法来实现这一点,或者我是否被困在初始化一个空字典并将键/值对一次添加到字典中

使用
数组#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];
}
var obj={};
var指数,分录;
对于(索引=0;索引
假设您有一个
pairs
变量,您可以使用
map()
函数解决方法(不是很优雅,因为map应该用于其他范围):


保罗·菲茨杰拉德:不错,你说得对。
var convertedDict = {};
pairs.map(function(pair) {
    convertedDict[pair[0]] = pair[1];
});