Nivel 9.10 del libro de problemas JavaScript

Задание 1

Se da una tabla. El usuario hace clic sucesivamente en dos celdas, resaltándolas. Haz que se resalten en color rojo todas las celdas ubicadas en orden entre aquellas en las que hizo clic el usuario.

Задание 2

Escribe un código que determine el nivel máximo de anidación de un array multidimensional.

Задание 3

Se da una lista de algunos datos de fechas determinadas, almacenada en la siguiente estructura:

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

Escribe un código que transforme la estructura de datos en una estructura del tipo:

javascript{
  año1: {
    mes1: {
      día1: [array de datos],
      día2: [array de datos],
      día3: [array de datos],
    }
    mes2: {
      día1: [array de datos],
      día2: [array de datos],
      día3: [array de datos],
    }
  }
  año2: {
    mes1: {
      día1: [array de datos],
      día2: [array de datos],
      día3: [array de datos],
    }
    mes2: {
      día1: [array de datos],
      día2: [array de datos],
      día3: [array de datos],
    }
  }
}