Здравствуйте, у меня есть файл json:
var jsonData = {
"name": "James",
"age": 22,
"nodes": [
{
"name": "John",
"age": 24,
"nodes": [
{
"name": "Jack",
"age": 65,
"nodes": [
{
"name": "Harry",
"age": 70,
"nodes": []
}
]
},
{
"name": "Joe",
"age": 10,
"nodes": []
}
]
},
{
"name": "Daniel",
"age": 30,
"nodes": []
}
]
}
Мне нужна функция, которая возвращает вывод следующим образом:
James 22
James - John 24
James - John - Jack 65
James - John - Jack - Harry 70
James - John - Joe 10
James - Daniel 30
Я пытался использовать рекурсивную функцию, но я не знаю, как вернуть вывод, подобный этому, и вернуть возраст только для последнего ребенка.
Код:
var json = jsonData;
var prev = [];
function sortData(obj, prev) {
var i = 0;
prev.push(obj.name + " " + obj.age);
console.log(prev);
if (obj.nodes.length > 0) {
while (i < obj.nodes.length) {
sortData(obj.nodes[i], prev);
i++;
prev.pop();
}
}
}
sortData(json, prev);
Моя функция возвращает вывод в нескольких массивах, поэтому я не знаю, как с этим работать, чтобы возвращать вывод, подобный этому. Буду благодарен за любую помощь. Спасибо!