将 javascript 对象合并到另一个根
merge javascript object to another's root
有没有办法合并这两个对象,以便我可以获得所需的输出(最后一个代码片段)?我有一个对象 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 对象。
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);
有没有办法合并这两个对象,以便我可以获得所需的输出(最后一个代码片段)?我有一个对象 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 对象。
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);