JSFiddle - React, Tailwind, and code Playground

HTML

<div id="result"></div>

JavaScript

var data = {
    "nodes": [
        { "name": "Folder 1" },
        { "name": "Folder 2" },
        { "name": "Folder 3" },
        {
            "name": "Folder 4",
            "nodes": [
                { "name": "Folder 4.1" },
                {
                    "name": "Folder 4.2",
                    "nodes": [
                        { "name": "Folder 4.2.1" },
                        { "name": "Folder 4.2.2" },
                        { "name": "Folder 4.2.3" }
                    ]
                },
                { "name": "Folder 4.3" }
            ]
        },
        { "name": "Folder 5" }
    ]
        
};

function iterateNodes(data) {
    for (var i = 0, l = data.nodes.length; i < l; i++) {
        var node = data.nodes[i];
        
        console.log(node.name);
        
        // just for seeing the result in HTML
        $('<p>').html(node.name).appendTo('#result');
        
        if (node.nodes) {
            arguments.callee(node);
        }
    }
}

iterateNodes(data);