Я создал вложенный JSON с помощью d3.nest ().Я пытаюсь получить сумму дочерних элементов от самого низкого уровня иерархии до самого верхнего уровня иерархии.
Вот так выглядят мои вложенные данные -
{'loc': 'London',
'values':[
{
'appgroups': 'A1|E1|London',
'values':[
{
'roles': 'R1|A1|E1|London',
'values':[
{'id':'jane'},
{'id':'mary'},
{'id':'john'},
{'id':'harry'},
{'id':'sienna'}
]
},
{
'roles': 'R2|A1|E1|London',
'values':[
{'id':'emily'},
{'id':'steve'},
{'id':'alex'}
]
},
{
'roles': 'R3|A1|E1|London',
'values':[
{'id':'michael'},
{'id':'eric'},
{'id':'mike'}
]
}
]
}
]
Этомой код ---
let nested_data = d3.nest()
.key(function(d) { return d.loc; })
.key(function(d) { return d.appgroups; })
.key(function(d) { return d.role; })
.entries(data)
.map(function(group) {
return {
loc: group.key,
values : group.values.map(function(ingroup){
let count = 0;
return {
appgroups: ingroup.key,
size:ingroup.values.forEach(function(obj){
count = count + obj.values.length;
console.log(count);
}),
values: ingroup.values.map(function(iningroup){
return {
roles: iningroup.key,
size: iningroup.values.length,
values: iningroup.values.map(function(ininingroup){
return {
id: ininingroup.id,
type: ininingroup.type,
}
})
}
})
}
})
}
})
Я мог бы добавить размер к каждой роли, например, 5 для R1, 3 для R2 и 3 для R3.Теперь я пытаюсь сделать то же самое для loc и appgroups, например, 11 для A1 и location должны иметь сумму всех.Я попытался добавить счетчик, но я не могу применить разрыв с forEach, чтобы получить сумму значений для каждой группы приложений.Есть ли другой способ сделать это?