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,...