我有一个看起来像这样的数组:[["key1", "value1"], ["key2", "value2"]]
。我想要一个如下字典:{"key1": "value1", "key2": "value2"}
。在Python中,我可以将数组传递给dict
初始值设定项。是否有一些在Javascript中执行此操作的等效方法,或者我是否一直在初始化一个空字典并将键/值对一次添加到字典中?
答案 0 :(得分: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 :(得分:1)
假设你有一个pairs
变量,你可以使用map()
函数解决方法(不是很优雅,因为map应该在其他范围内使用):
var convertedDict = {};
pairs.map(function(pair) {
convertedDict[pair[0]] = pair[1];
});