Поэтому я пытаюсь получить консольный результат, подобный следующему:
LT 10
LT - Kaunas 2
LT - Kaunas - Centras 1
LT - Kaunas - Centras - lasives al. 0.5
LT - Kaunas - Žaliakalnis 1
LT - Vilnius 4
Из этого объекта JSON:
var x = {
"name": "LT",
"size": 10,
"nodes": [
{
"name": "Kaunas",
"size": 2,
"nodes": [
{
"name": "Centras",
"size": 1,
"nodes": [
{
"name": "lasives al.",
"size": 0.5,
"nodes": []
}
]
},
{
"name": "Žaliakalnis",
"size": 1,
"nodes": []
}
]
},
{
"name": "Vilnius",`enter code here`
"size": 4,
"nodes": []
}
]
}
Мое решение просто повторяется через объект, но я не могу понять, как напечатать все в зависимости от глубины.
var name = [];
function Print(data) {
for(var da in data) {
if(data.hasOwnProperty(da) && typeof data[da] === 'object') {
Print(data[da])
} else {
name.push(data[da]);
}
}
}
Print(x);
Пробовал, кажется, все, я думаю, это должно быть близко к одной строке кода, но не могу понять это. Недостаток знаний, кажется:)