Utilizzando il codice seguente, la funzione restituisce più volte. Devo interrompere la ricorsione e restituire il risultato solo una volta.Come interrompere e tornare dalle funzioni ricorsive?
Qualche idea su come risolverlo?
var data = {
item: [{
itemNested: [{
itemNested2: [{
id: "2"
}]
}]
}]
};
function findById (obj, id) {
var result;
for (var p in obj) {
if (obj.id) {
if(obj.id == id) {
result = obj;
break; // PROBLEM HERE dos not break
}
} else {
if (typeof obj[p] === 'object') {
findById(obj[p], id);
}
}
}
console.log(result);
return result;
}
var result = findById(data, "2");
alert(result);
perfetto. Grazie per l'aiuto – GibboK