JSFiddle - React, Tailwind, and code Playground

by blowsie

JavaScript

var myData = {
    "children": [
        {
        "id": 1,
        "children": [{
            "id": 4,
            "children": [{
                "id": 7,
                "children": []}]}]},
    {
        "id": 2,
        "children": [{
            "id": 5,
            "children": [{
                "id": 8,
                "children": []}]}]},
    {
        "id": 3,
        "children": [{
            "id": 6,
            "children": [{
                "id": 9,
                "children": []}]}]}]
}



function recursiveFind(data, match) {
    var match;
    var rtn = true;
    $.each(data.children, function(k, v) {
        var eachRtn = true;
        console.log('looking in', v.id)
        if (v.id == match) {
            match = v;
            console.log('found', match.id)
            eachRtn = false;
        } else {
            return recursiveFind(v, match);
        }
        rtn = eachRtn;
        return eachRtn;
    });
    return rtn;
}

function recursiveFind2(data, match, foundVal) {

    if (foundVal == undefined) {
        $.each(data.children, function(k, v) {
            var eachRtn = true;
            console.log('looking in', v.id)
            if (v.id == match) {
                foundVal = v;
                console.log('found', foundVal.id)
                eachRtn = false;
            } else {
                foundVal = recursiveFind2(v, match, foundVal);
                if (foundVal) {
                    eachRtn = false;
                }
            }
            return eachRtn;

        });
    }
    return foundVal;

}


var answer = recursiveFind2(myData, 7);
if (answer) {
    console.log('im gonna set value', answer)
}