D3.js 使用D3.nest()计算JSON的不同值
我有以下几个问题:D3.js 使用D3.nest()计算JSON的不同值,d3.js,D3.js,我有以下几个问题: { "ReturnCode":0, "ReturnMessage":"Success", "List":[{ "Client":"Ad", "Department":"DP", "ProjectId":"12355", "ProjectName":"4940" }, { "Client":"Ad", "Department":"
{
"ReturnCode":0,
"ReturnMessage":"Success",
"List":[{
"Client":"Ad",
"Department":"DP",
"ProjectId":"12355",
"ProjectName":"4940"
}, {
"Client":"Ad",
"Department":"SP",
"ProjectId":"12355",
"ProjectName":"4940"
}, {
"Client":"Ad",
"Department":"Co",
"ProjectId":"12355",
"ProjectName":"asdf"
}, {
"Client":"Ad",
"Department":"Co",
"ProjectId":"212355",
"ProjectName":"45ed"
}, {
"Client":"Ad",
"Department":"Co",
"ProjectId":"212355",
"ProjectName":"45ed "
}, {
"Client":"we",
"Department":" SP ",
"ProjectId":"123455",
"ProjectName":"asdf"
}, {
"Client":"we",
"Department":"Co",
"ProjectId":"123455",
"ProjectName":"asdf"
}, {
"Client":"oc",
"Department":"Co",
"ProjectId":"24355",
"ProjectName":"qwe"
}]
}
我只需要使用d3.nest计算每个客户机的项目数量,如下所示:
[{Key:”Ad”, value:2}, {Key:”we”, value:1}, {Key:”oc”, value:1}]
看看link,它有很多用于d3.nest函数的例子。对于您的情况,您可以执行下面编写的代码
d3.json("json/data.json", function(data) {
console.log(data);
var nested_data = d3.nest()
.key(function(d) { return d.Client; })
.key(function(d) { return d.ProjectId; })
.rollup(function(leaves) { return leaves.length; })
.entries(data.List);
console.log(nested_data);
console.log(nested_data[0].values.length) //length of key 'AD'
})
这样试试
var obj={
返回代码:0,
信息:成功,
列表:[{
客户:广告,
部门:DP,
项目编号:12355,
项目名称:4940
}, {
客户:广告,
部门:SP,
项目编号:12355,
项目名称:4940
}, {
客户:广告,
部门:公司,
项目编号:12355,
项目名称:asdf
}, {
客户:广告,
部门:公司,
项目编号:212355,
项目名称:45ed
}, {
客户:广告,
部门:公司,
项目编号:212355,
项目名称:45ed
}, {
客户:我们,
部门:SP,
项目编号:123455,
项目名称:asdf
}, {
客户:我们,
部门:公司,
项目编号:123455,
项目名称:asdf
}, {
客户:oc,
部门:公司,
项目编号:24355,
项目名称:qwe
}]
};
变量嵌套_数据=d3.nest
.keyfunctiond{return d.Client;}
.keyfunctiond{return d.ProjectId;}
.rollupfunctionleaves{return leaves.length;}
.entriesbj.List
.mapd{
var ob={};
ob.Key=d.Key;
ob.value=d.values.length;
返回ob;
};
alertJSON.Stringify嵌套的数据;
对于最后一部分,我将简单地使用-
for (var item in nested_data) {
console.log(nested_data[item].key+'--'+ Object.keys(nested_data[item].values).length);
}
对于最后一部分,我将在嵌套_数据{console.lognested_数据[item].key+'-'+Object.keysnested_数据[item].values.length;}