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

Дан абзац с текстом и кнопка. По клику на кнопку покрасьте каждый символ в случайный цвет так, чтобы у соседних символов были разные цвета.

Дан абзац со словами и инпут. В инпут вводится слово. По клику на кнопку найдите это в абзаце и покрасьте его в красный цвет.

Дано меню со ссылками. Покрасьте в красный цвет ту ссылку, адрес которой совпадает с URL из адресной строки браузера.

Выведите на экран следующую пирамидку:

xxxxx
xxxx
xxx
xx
x

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

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

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

{ '2019-12-29': ['name1', 'name3', 'name5', 'name7'], '2019-12-30': ['name4', 'name8', 'name9'], '2019-12-31': ['name2', 'name6'], }