← 返回首页
Create a tree from the object
EN

We want to make this open-source project available for people all around the world.

Help to translate the content of this tutorial to your language!

    Search
    Search
    Light themeDark theme
    عربيDanskEnglishEspañolفارسیFrançaisIndonesiaItaliano日本語한국어РусскийTürkçeУкраїнськаOʻzbek简体中文
    back to the lesson

    Create a tree from the object

    importance: 5

    Write a function createTree that creates a nested ul/li list from the nested object.

    For instance:

    let data = { "Fish": { "trout": {}, "salmon": {} }, "Tree": { "Huge": { "sequoia": {}, "oak": {} }, "Flowering": { "apple tree": {}, "magnolia": {} } } };

    The syntax:

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

    The result (tree) should look like this:

    Choose one of two ways of solving this task:

    1. Create the HTML for the tree and then assign to container.innerHTML.
    2. Create tree nodes and append with DOM methods.

    Would be great if you could do both.

    P.S. The tree should not have “extra” elements like empty <ul></ul> for the leaves.

    Open a sandbox for the task.

    solution

    The easiest way to walk the object is to use recursion.

    1. The solution with innerHTML.
    2. The solution with DOM.