【发布时间】:2020-07-07 08:09:31
【问题描述】:
对不起标题。我什至不知道我该如何解释我想要什么。
这就是我想要实现的目标
const array = [
{
key: 0,
key2: [ { id: "a", data: "abc" }, { id: "b", data: "wxy" }... ]
},
{
key: 1,
key2: [ { id: "a", data: "qwe" }, { id: "b", data: "zxc" }... ]
},
...
]
我想把它转换成,
const result = {
0 : {
a: "abc",
b: "wxy"
},
1 : {
a: "qwe",
b: "zxc"
}
}
到目前为止,我有这个:
const transforms = array
.map((o) => {
return { [o.key]: o.key2 };
})
.reduce((prev, curr) => {
for (let key in curr)
prev[key] = curr[key]
.map((c) => {
return { [c.id]: c.data};
})
.reduce((prev, curr) => {
for (let key in curr) prev[key] = curr[key];
return prev;
}, {});
return prev;
}, {});
这很难阅读,而且性能可能不是很好。 老实说,我什至不知道它是否真的 100% 有效。 到目前为止,它给了我预期的结果。
我该如何重构它? 请帮忙。
【问题讨论】:
-
对于codereview.stackexchange.com 来说可能是一个更好的问题。虽然请确保您先阅读their help
-
不知道那个,我去试试!
标签: javascript arrays algorithm object