JSFiddle - React, Tailwind, and code Playground

by Sam Fereday

HTML

<div id="output"></div>

JavaScript

var json = [{
    "name": "level1",
    "children": [{
        "id": "1",
        "children": [{
            "id": "1a"
        },
        {
            "id": "2a"
        }]
    },
    {
        "id": "2",
        "children": [{
            "id": "1b"
        },
        {
            "id": "2b"
        }]
    }]
}]

function get(id, data) {

    var i = 0,
		len = data.length,
		searchProperty = searchProperty || "Id",
		found;



	    for(i; i < len; i+=1) {
	        if(data[i][searchProperty] === Id) {
	            return data[i];   
	        }
	        if(data[i].hasOwnProperty('children')){
	            found = get(Id, data[i].children);
	        }
	    }
	    
	    if(typeof found === 'object') {
	        return found;
	    } else {
	        return null;   
	    }
    
}

var output = get("1b", json);
console.log("Output:", output);
document.getElementById('output').innerHTML = output.id;