javascript - 如何将数组的数组转换为对象?

标签 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))?

最佳答案

我建议使用 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 }

关于javascript - 如何将数组的数组转换为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28300968/

相关文章:

JavaScript REST 客户端和 session 管理

Javascript:练习 concat 和 reduce

java - 获取循环以添加数组的所有列

javascript - 正则表达式问题(长字符串)

javascript - 具有多个值和图标的 jQuery 自动填充(通过电子邮件发送到字段)

javascript - 在 Knockout.js 中绑定(bind)命名空间 View 模型

java - 跳过一个单词,打印下一个单词

javascript - 返回对象数组

c++ - 文字是标准术语的对象吗?

java - java - 如何测试对象引用在Java中使用了多少字节?