torna alle lezioni

Crea un albero da un oggetto

importanza: 5

Scrivi una funzione createTree che crea una lista ul/li annidata partendo dall’oggetto annidato.

Ad esempio:

let data = {
  "Fish": {
    "trout": {},
    "salmon": {}
  },

  "Tree": {
    "Huge": {
      "sequoia": {},
      "oak": {}
    },
    "Flowering": {
      "apple tree": {},
      "magnolia": {}
    }
  }
};

La sintassi:

let container = document.getElementById('container');
createTree(container, data); // creates the tree in the container

Il risultato (l’albero) dovrebbe somigliare a questo:

Scegli uno dei due metodi per risolvere la task:

  1. Crea l’HTML per l’albero e assegnala a container.innerHTML.
  2. Crea i nodi dell’albero e appendili utilizzando i metodi del DOM.

Sarebbe grandioso se riuscissi con entrambi.

P.S. L’albero non dovrebbe avere elementi “extra”&#8209;ad esempio<ul></ul> vuoti- come foglie.

Apri una sandbox per l'esercizio.

Il modo più semplice per percorrere l’oggetto è utilizzando la ricorsione.

  1. La soluzione con innerHTML.
  2. La soluzione con DOM.