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;}