JSFiddle - React, Tailwind, and code Playground
by Nalin Sajwan
HTML
<pre id="finalOutput">
</pre>
JavaScript
var sampleJson = [
{
"name": "Hemiptera",
"children": [
{
"name": "Mirida",
"children": [
{
"name": "Nalin Sajwan",
"checked": true
}
],
"checked": true
},
{
"name": "Miridae",
"children": [
{
"name": "Neophloeobia",
"children": [
{
"name": "incisa"
}
]
}
],
"checked": true
}
]
},
{
"name": "Lepidoptera",
"children": [
{
"name": "Nymphalidae",
"children": [
{
"name": "Ephinephile",
"children": [
{
"name": "rawnsleyi"
}
]
}
],
"checked": true
}
]
},
{
"name": "a",
"children": [
{
"name": "af1",
"children": [
{
"name": "af1g1",
"children": [
{
"name": "af1g1s1"
},
{
"name": "af1g1s2"
},
{
"name": "af1g1s3"
}
]
},
{
"name": "af1g2",
"children": [
{
"name": "af1g2s1"
},
{
"name": "af1g2s2"
}
],
"checked": true
}
]
},
{
"name": "af2",
"children": [
{
"name": "af2g1",
"children": [
{
"name": "af2g1s1"
},
{
"name": "af2g2s1"
}
],
"checked": true
}
]
},
{
"name": "af3",
"children": [
{
"name": "af3g1",
"children": [
{
"name": "af3g1s1"
}
]
}
],
"checked": true
}
]
}
];
var travereTree = function(objToSet, keyObjToMap, tree){
for(var i = 0; i < tree.length; i++) {
var foundChecked = false;
if(typeof tree[i][keyObjToMap.name] !== "undefined"
&& tree[i][keyObjToMap.name] == keyObjToMap.value) {
foundChecked = true;
}
if(foundChecked) {
objToSet.push(tree[i].name);
} else if(typeof tree[i].children !== "undefined"
&& tree[i].children.length) {
travereTree(objToSet,...