我已经使用d3.nest()创建了嵌套的JSON。我正在尝试从层次结构的最低层到最高层的子级总数。
这就是我的嵌套数据的样子-
{'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,
}
})
}
})
}
})
}
})
我可以为每个角色增加大小,例如R1为5,R2为3,R3为3。现在,我尝试对loc和appgroup进行相同的操作,例如,对于A1来说为11,而location应该具有所有和。我尝试将总数相加,但无法使用forEach来获取每个应用程序组的值总和。还有其他方法吗?