Уровень 8.8 задачника JavaScript

Даны два селекта. В первом селекте выводятся страны. Сделайте так, чтобы во втором селекте выводились города выбранной страны.

Даны инпут и кнопка. В инпут вводится число. По клику на кнопку, проверьте, является ли это число совершенным.

Дан список событий за определенные месяцы, хранящийся в следующей структуре:

let events = [ { date: '2019-12' event: 'name1' }, { date: '2019-12' event: 'name2' }, { date: '2019-11' event: 'name3' }, { date: '2019-11' event: 'name4' }, { date: '2020-10' event: 'name5' }, { date: '2020-10' event: 'name6' }, { date: '2020-11' event: 'name5' }, { date: '2020-11' event: 'name6' }, { date: '2020-12' event: 'name7' }, { date: '2020-12' event: 'name8' }, { date: '2020-12' event: 'name9' }, ]

Напишите код, которой переделает структуру данных вот в такую:

{ 2019: { 11: [массив событий], 12: [массив событий], } 2020: { 10: [массив событий], 11: [массив событий], 12: [массив событий], } }