У меня есть объект JavaScript следующим образом:Перебора объекта Javascript для добавления подытогов на основе дочерних объектов
{
"name":"root",
"children":[
{
"name":"Oct 2014",
"children":[
{
"name":"Books",
"value":106223,
"formattedValue":"$106,223"
},
{
"name":"Electronics",
"value":983933,
"formattedValue":"$983,933"
}
]
},
{
"name":"Nov 2014",
"children":[
{
"name":"Books",
"value":117588.7,
"formattedValue":"$117,589"
},
{
"name":"Electronics",
"value":992779,
"formattedValue":"$992,779"
}
]
}
]
}
мне интересно, как я могу цикл по самому низким детям объекта, и работать свой путь в обратном направлении, прагматично , чтобы добавить элемент «значение» к каждому родительскому объекту, где это значение является суммой дочерних объектов. Таким образом, в приведенном выше примере, это результат я пытаюсь добраться до:
{
"name":"root",
"children":[
{
"name":"Oct 2014",
"children":[
{
"name":"Books",
"value":106223,
"formattedValue":"$106,223"
},
{
"name":"Electronics",
"value":983933,
"formattedValue":"$983,933"
}
],
"value":10900156
},
{
"name":"Nov 2014",
"children":[
{
"name":"Books",
"value":117588.7,
"formattedValue":"$117,589"
},
{
"name":"Electronics",
"value":992779,
"formattedValue":"$992,779"
}
],
"value":1110367.7
}
]
}
Может кто-то дать указания в том, как я могу добраться до низового большинства детей, а также добавить ценность каждого ребенка в родитель, образуя промежуточные итоги?
вещи я понял, до сих пор:
- Количество детей в объекте: root.children.length.
- Перебор верхних детей:
for(var i = 0; i < root.children.length;i++){
var obj = root.children[i];
console.log("name: "+obj["name"]);
console.log("value: "+obj["value"]);
}
Примечание: набор данных не гарантируется всегда имеют одинаковую «глубину». Хотя в этом случае объект имеет 2 уровня, в других сценариях он может иметь больше или меньше. Я пытаюсь объяснить это в цикле.
Будет обновляться, поскольку я больше узнаю ... спасибо за любой вклад, который любой может предоставить за это время!
Рекурсия, что вы ищете – hindmost
@hindmost, рекурсия не может помочь здесь, потому что структура не соответствует от родителя к ребенку. –
@loco, самые нижние дети всегда будут на 2 уровня ниже корня? Если нет, объясните. –