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)
}