如何将数组数组转换为Object?

时间:2015-02-03 14:11:09

标签: javascript arrays object

在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))?

1 个答案:

答案 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 }
相关问题