从对数组初始化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];
});