Livello 9.10 del libro di problemi JavaScript

Задание 1

Data una tabella. L'utente clicca in sequenza su due celle, evidenziandole. Fai in modo che tutte le celle posizionate in ordine tra quelle cliccate dall'utente vengano evidenziate in rosso.

Задание 2

Scrivi il codice che determini il livello massimo di annidamento di un array multidimensionale.

Задание 3

Dato un elenco di alcuni dati per determinate date, memorizzato nella seguente struttura:

javascriptlet data = [
  {
    year:  2019,
    month: 11,
    day: 20,
    data: ['array con dati']
  },
  {
    year:  2019,
    month: 11,
    day: 21,
    data: ['array con dati']
  },
  {
    year:  2019,
    month: 12,
    day: 25,
    data: ['array con dati']
  },
  {
    year:  2019,
    month: 12,
    day: 26,
    data: ['array con dati']
  },
  {
    year:  2020,
    month: 10,
    day: 29,
    data: ['array con dati']
  },
  {
    year:  2020,
    month: 10,
    day: 30,
    data: ['array con dati']
  },
  {
    year:  2020,
    month: 11,
    day: 19,
    data: ['array con dati']
  },
  {
    year:  2020,
    month: 11,
    day: 20,
    data: ['array con dati']
  },
]

Scrivi il codice che converta la struttura dei dati in una struttura del tipo:

javascript{
  anno1: {
    mese1: {
      giorno1: [array di dati],
      giorno2: [array di dati],
      giorno3: [array di dati],
    }
    mese2: {
      giorno1: [array di dati],
      giorno2: [array di dati],
      giorno3: [array di dati],
    }
  }
  anno2: {
    mese1: {
      giorno1: [array di dati],
      giorno2: [array di dati],
      giorno3: [array di dati],
    }
    mese2: {
      giorno1: [array di dati],
      giorno2: [array di dati],
      giorno3: [array di dati],
    }
  }
}