我有几个包含单个对象的数组,如下所示。 我想将这两个结构合并为一个结构:
更改
一组更改,其定义为:
{
app_name: "App 1"
2017: {fYear: 2017, changesCount: 37},
2018: {fYear: 2018, changesCount: 10}
}
问题
一系列问题的定义是
{
app_name: "App 1",
2018: {fYear: 2018, all: 10, typeA: 1, typeB:5, TypeC: 1}
}
最终结果
寻找合并对象的数组,每个对象都是变更和问题的合并:
{
app_name: "App 1"
2017: {fYear: 2017, changesCount: 37},
2018: {fYear: 2018, changesCount: 10, all: 10, typeA: 1, typeB:5, TypeC: 1}
}
我当然可以做一个循环,但对我来说似乎不是最好的,所以我一直在尝试研究map和reduce函数,但到目前为止还没有运气。
有什么推荐吗?
谢谢!
最佳答案
let a = {
app_name: "App 1",
'2017': { fYear: 2017, changesCount: 37 },
'2018': { fYear: 2018, changesCount: 10 }
}
let b = {
app_name: "App 1",
2018: { fYear: 2018, all: 10, typeA: 1, typeB: 5, TypeC: 1 }
}
let c = { ...a, ...b };
let d = Object.keys(c).reduce((result, item) => {
if (a[item] && typeof a[item] === 'object') {
Object.assign(result[item], a[item])
}
return result;
}, c);
关于javascript - 在 Javascript 中合并树而无需编写循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53810778/