console
var nodes = [
{
name: 'a1',
children: [
{ name: 'a1-c1' },
{ name: 'a1-c2' }
]
},
{
name: 'a2',
children: [
{ name: 'a2-c1' },
{ name: 'a2-c2' },
]
},
{
name: 'a3'
},
{
name: 'a4',
children: [
{name: 'a4-c1'},
{name: 'a4-c2'},
{name: 'a4-c3'},
]
}
]
function createElm(nodes) {
let domLi = document.createElement('li')
domLi.innerText = nodes.name
if (nodes.children?.length > 0) {
let children = nodes.children
let item = createTree(children)
domLi.appendChild(item)
}
return domLi
}
function createTree(nodes) {
let node = document.createElement('ul')
for (item of nodes) {
node.appendChild(createElm(item))
}
return node
}
document.querySelector('#app').appendChild(createTree(nodes))
<div id="app"></div>