【发布时间】:2020-03-16 22:01:33
【问题描述】:
我正在尝试从下面列出的对象数组中合并 n 个对象。
我尝试使用reduce方法,但我不明白我做错了什么,对高级js方法还是新手。
const array = [
{
data: {
'1': {
foo: 'bar',
test: true
},
'4': {
foo: 'boor'
}
}
},
{
data: {
'1': {
x: 'o',
test2: false
}
}
}
];
const result = Object.values(
array.reduce((r, { data }) => {
Object.entries(data).forEach(([id, { ...else }]) => {
r[id] = r[id] || {
id,
fooValue: else.foo, // should be `bar` for id `1` and `boor` for id `4`
xValue: else.x, // should be `o` for id `1` and `undefined` for id `4`
all: ...else
};
});
return r;
}, {})
);
我试图最终得到这样的东西,但我很迷茫。
[
{
id: '1',
fooValue: 'bar',
xValue: 'o',
all: {
foo: 'bar',
test: true,
x: 'o',
test2: false
}
},
{
id: '4',
fooValue: 'boor',
xValue: undefined,
all: {
foo: 'boor'
}
}
]
【问题讨论】:
-
你刚刚问了这个问题并得到了答案stackoverflow.com/questions/58966177/…
-
@Titus 是的,但是每个人都忽略了我的编辑,我什至在他们的答案下发表了评论,但没有人回应,我也无法删除我的旧问题,所以不,我没有得到答案。
标签: javascript arrays sorting reduce