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

Задание 1

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

Задание 2

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

Задание 3

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

Задание 4

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

xxxxx
xxxx
xxx
xx
x
Задание 5

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

javascriptlet 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'
  },
]

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

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