在javascript中将元组列表转换为字典的最佳方法是什么?
一种方法是:
var data = [['a',1], ['b',2],['c',3]]
var group_to_lengths = {}
data.forEach(function(d) {
group_to_lengths[d[0]] = d[1];
});
是否有更简单或更惯用的方式来完成同样的事情?也许就像在python(group_to_lengths = dict(data)
)?
答案 0 :(得分:4)
我建议使用Array.prototype.reduce
,对于这种情况更为惯用,就像这样
console.log(data.reduce(function(result, currentItem) {
result[currentItem[0]] = currentItem[1];
return result;
}, {}));
# { a: 1, b: 2, c: 3 }
但是,如果您使用函数式编程库,例如underscore.js,那么它只是一个带有_.object
的单行程序,就像这样
console.log(_.object(data));
# { a: 1, b: 2, c: 3 }