JSFiddle - React, Tailwind, and code Playground
by JinHan Heo
Babel + JSX
let nodes = [{
'id': 1,
'uuid': "number1",
'nodes': [{
'id': 2,
'uuid': "number1",
'nodes': [{
'id': 3,
'uuid': "number1",
'nodes': [{
'id': 3,
'uuid': "number1",
'nodes': [{
'id': 4,
'uuid': "number1"
}]
}]
}]
}]
},
{
'id': 5,
'uuid': "number1",
'nodes': [{
'id': 6,
'uuid': "number1",
'nodes': [{
'id': 7,
'uuid': "number1",
'nodes': [{
'id': 8,
'uuid': "number1",
'nodes': [{
'id': 9,
'uuid': "number1"
}]
}]
}]
}]
}
];
function* findNode(nodes, id) {
for (let node of nodes) {
node.id === id && (yield node)
node.nodes && (yield* findNode(node.nodes, id))
}
}
console.log(findNode(nodes, 5).next().value)
const [...a] = [...findNode(nodes, 5)];
console.log(a)