将 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);