Cześć, napisałem sobie prostą funkcję do przeszukiwania tablicy. Funkcja ma za zadane znaleźć element o odpowiednim ID w tablicy z zagnieżdżonymi childami. O ile wynik w konsoli pokazywany jest w prawidłowy sposób, to return działa tylko w przypadku elementów, które nie są zagnieżdżone w childrenie. Te zagnieżdżone zawsze zwracają undefined. Zakładam, że problem leży w zagnieżdżeniu funkcji w funkcji. Testowałem różne sposoby, ale nie mogę znaleźć rozwiązania tego problemu, bardzo proszę o pomoc lub wskazówki.
function testowa(obj, find_id)
{
if (obj.id == find_id) return obj.id;
for (var k in obj)
{
if (obj[k].children)
{
if (obj[k].id == find_id)
{
console.log(obj[k].id);
return obj[k].id;
}
else
{
testowa(obj[k].children, find_id);
}
}
else
{
if (obj[k].id == find_id)
{
console.log(obj[k].id);
return obj[k];
}
}
}
}
[
{
"name": "Item 1",
"id": 1
},
{
"name": "Item 2",
"id": 2
},
{
"name": "Item 3",
"id": 3,
"children": [
{
"name": "Item 4",
"id": 4
},
{
"name": "Item 5",
"id": 5,
"children": [
{
"name": "Item 6",
"id": 6
}
]
}
]
}
]