有没有办法合并这两个对象,所以我可以获得所需的输出(最后一个代码片段)?我有一个对象generated_calendar,其Q1-Q4期间为1-12,周期对象为期间。
var generated_calendar = {
Q1 : {
P1 : {
WK1 : {
start: '',
end: ''
},
WK2 : {
start: '',
end: ''
},
WK3 : {
start: '',
end: ''
}
},
P2 : {
WK4 : {
start: '',
end: ''
},
WK5 : {
start: '',
end: ''
},
WK6 : {
start: '',
end: ''
}
},
P3 : {
WK7 : {
start: '',
end: ''
},
WK8 : {
start: '',
end: ''
},
WK9 : {
start: '',
end: ''
}
},
P4 : {
WK10 : {
start: '',
end: ''
},
WK11 : {
start: '',
end: ''
},
WK12 : {
start: '',
end: ''
},
WK13 : {
start: '',
end: ''
}
}
},
Q2 : {
P5 : {
WK14 : {
start: '',
end: ''
}
}
}
}
和
var weeks = {
WK1 : {
start: '1/1/2018',
end: '1/7/2018'
},
WK2 : {
start: '1/8/2018',
end: '1/14/2018'
},
WK3 : {
start: '1/15/2018',
end: '1/21/2018'
}}
等......生成以下内容
var generated_calendar = {
Q1 : {
P1 : {
WK1 : {
start: '1/1/2018',
end: '1/7/2018'
},
WK2 : {
start: '1/8/2018',
end: '1/14/2018'
},
WK3 : {
start: '1/15/2018',
end: '1/21/2018'
},
P2 : {
WK4 : {
start: '',
end: ''
}
}
}
}
你明白了,我将有一个52周的对象,我想将它合并到具有WK密钥的generated_calendar对象。
答案 0 :(得分:0)
Object.keys(generated_calendar).forEach( (q) => {
Object.keys(generated_calendar[q]).forEach((p) => {
Object.keys(generated_calendar[q][p]).forEach((w) => {
if(weeks[w]){
generated_calendar[q][p][w] = weeks[w]
}
});
});
});
console.log(generated_calendar);