如何从一个键值对的数组中创建一个对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (189)

在Python中,可以传递dict1个构造函数一系列的键值对:

>>> dict([['name', 'Bob'], ['age', 42], ['breakfast', 'eggs']])
{'age': 42, 'name': 'Bob', 'breakfast': 'eggs'}

除了定义我自己的功能外,我想不出在JavaScript中做这种事情的方法:

function pairs_to_object(pairs) {
    var ret = {};
    pairs.forEach(function (p) { ret[p[0]] = p[1]; });
    return ret;
}

在JS noob ...有什么内置的对象转换?

提问于
用户回答回答于

你可以使用reduce函数

x = [[1,2],[3,4],[5,6]];
o = x.reduce(function(prev,curr){prev[curr[0]]=curr[1];return prev;},{})

o现在相当于 {1:2, 3:4, 5:6}

如果你的输入数组比较少,你可以if(curr!=undefined)在赋值上添加一个测试,但是确保你仍然返回“prev”。

如果你的元组比简单的,你可以简单地改变“prev”分配的方式。例如:prev["key-"+curr[0].toString()]=curr[1]*2;

用户回答回答于

JavaScript本身没有这样的构造函数。

正如你自己所说,你当然可以建立自己的功能代码,。当然,对于循环来说,经典的或更新的也是可行的。但是没有任何内置的东西。

扫码关注云+社区

领取腾讯云代金券