【发布时间】:2020-08-27 01:25:59
【问题描述】:
我有以下形式的数组:
[
{key: "key1", value: value1}
{key: "key2", value: value2}
{key: "key3", value: value3}
...
]
我需要转换成如下形式:
{ { key1 : value1}, { key2 : value2}, { key3 : value3} }
如何用 reduce() 做到这一点?
我正在尝试使用此代码:
var someObject = this.someArray.reduce(function(acc, item) {
return { [item.key]: item.value};
}, {});
但我总是只得到最后一项,而不是全部。
【问题讨论】:
-
你所有的钥匙都是同一个钥匙。同样在对象上使用
+会将它们强制为字符串"[object Object]"。目前尚不清楚您认为这会如何发挥作用。 -
您的预期输出无效。你想要一个对象数组吗?
-
@jonrsharpe- 我修复了输入键
-
给minimal reproducible example。添加逗号和引号使其最小有效语法,这不会只输出最后一项,它会输出
"[object Object][object Object][object Object][object Object]"。 -
@Dane Brouwer - 再次抱歉 - 我将上面的示例编辑到只给我最后一项的行。
标签: javascript typescript javascript-objects reduce