Nível 9.10 do livro de exercícios JavaScript

Задание 1

É dada uma tabela. O usuário clica sequencialmente em duas células, destacando-as. Faça com que fiquem destacadas em vermelho todas as células localizadas em ordem entre aquelas nas quais o usuário clicou.

Задание 2

Escreva um código que determine o nível máximo de aninhamento de um array multidimensional.

Задание 3

Dada uma lista de alguns dados referentes a determinadas datas, armazenada na seguinte estrutura:

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

Escreva um código que reformate a estrutura dos dados para uma estrutura do tipo:

javascript{
  ano1: {
    mês1: {
      dia1: [array de dados],
      dia2: [array de dados],
      dia3: [array de dados],
    }
    mês2: {
      dia1: [array de dados],
      dia2: [array de dados],
      dia3: [array de dados],
    }
  }
  ano2: {
    mês1: {
      dia1: [array de dados],
      dia2: [array de dados],
      dia3: [array de dados],
    }
    mês2: {
      dia1: [array de dados],
      dia2: [array de dados],
      dia3: [array de dados],
    }
  }
}