Poziom 8.6 zadań JavaScript

Задание 1

Dany jest akapit z tekstem i przycisk. Po kliknięciu przycisku pokoloruj każdy znak losowym kolorem tak, aby sąsiadujące znaki miały różne kolory.

Задание 2

Dany jest akapit ze słowami i pole input. Do pola input wprowadzane jest słowo. Po kliknięciu przycisku znajdź to słowo w akapicie i pokoloruj je na czerwono.

Задание 3

Dane jest menu z linkami. Pokoloruj na czerwono ten link, którego adres pokrywa się z URL z paska adresu przeglądarki.

Задание 4

Wyświetl na ekranie następującą piramidkę:

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

Dana jest lista wydarzeń z określonych dat, przechowywana w następującej strukturze:

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

Napisz kod, który przekształci strukturę danych w taką:

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