1
的重複計數分組值讓我有看起來像這樣的數據對象:與元件
[
{
"scenario_id": 238,
"scenario_desc": "k1204",
"scenario_status": null,
"scn_appl_lob_ownr_nm": "Crd",
"scenario_asv_id": 21216,
"appl_ci_id": "CI256747",
"mth_dt": "2015-01",
"cost_curr": 888.7326,
"qty_curr": "2",
"cost_trgt": 0,
"qty_trgt": "0",
"ftprnt": [
"Both"
]
},
{
"scenario_id": 238,
"scenario_desc": "k1204",
"scenario_status": null,
"scn_appl_lob_ownr_nm": "Crd",
"scenario_asv_id": 21216,
"appl_ci_id": "CI256747",
"mth_dt": "2015-01",
"cost_curr": 13479.6678574427,
"qty_curr": "17",
"cost_trgt": 0,
"qty_trgt": "0",
"ftprnt": [
"Both"
]
},
{
"scenario_id": 238,
"scenario_desc": "k1204",
"scenario_status": null,
"scn_appl_lob_ownr_nm": "Crd",
"scenario_asv_id": 21216,
"appl_ci_id": "CI256747",
"mth_dt": "2015-01",
"cost_curr": 11295.401684737,
"qty_curr": "17",
"cost_trgt": 0,
"qty_trgt": "0",
"ftprnt": [
"Both"
]
},
{
"scenario_id": 238,
"scenario_desc": "k1204",
"scenario_status": null,
"scn_appl_lob_ownr_nm": "Crd",
"scenario_asv_id": 21216,
"appl_ci_id": "CI256747",
"mth_dt": "2015-01",
"cost_curr": 2263.9328,
"qty_curr": "10",
"cost_trgt": 0,
"qty_trgt": "0",
"ftprnt": [
"Both"
]
},
{
"scenario_id": 238,
"scenario_desc": "k1204",
"scenario_status": null,
"scn_appl_lob_ownr_nm": "Crd",
"scenario_asv_id": 21215,
"appl_ci_id": "CI291768",
"mth_dt": "2015-01",
"cost_curr": 58406.3066,
"qty_curr": "17",
"cost_trgt": 0,
"qty_trgt": "0",
"ftprnt": [
"Cloud"
]
},
{
"scenario_id": 178,
"scenario_desc": "ktest",
"scenario_status": null,
"scn_appl_lob_ownr_nm": "Crd",
"scenario_asv_id": 11028,
"appl_ci_id": "ASV",
"mth_dt": "2015-01",
"cost_curr": 0,
"qty_curr": "0",
"cost_trgt": 0,
"qty_trgt": "0",
"ftprnt": [
"Cloud"
]
},
{
"scenario_id": 178,
"scenario_desc": "ktest",
"scenario_status": null,
"scn_appl_lob_ownr_nm": "Crd",
"scenario_asv_id": 11028,
"appl_ci_id": "ASV",
"mth_dt": "2015-01",
"cost_curr": 0,
"qty_curr": "0",
"cost_trgt": 0,
"qty_trgt": "0",
"ftprnt": [
"Cloud"
]
},
{
"scenario_id": 178,
"scenario_desc": "ktest",
"scenario_status": null,
"scn_appl_lob_ownr_nm": "Crd",
"scenario_asv_id": 11028,
"appl_ci_id": "ASV",
"mth_dt": "2015-01",
"cost_curr": 2259.994,
"qty_curr": "6",
"cost_trgt": 0,
"qty_trgt": "0",
"ftprnt": [
"Cloud"
]
},
{
"scenario_id": 178,
"scenario_desc": "ktest",
"scenario_status": null,
"scn_appl_lob_ownr_nm": "Crd",
"scenario_asv_id": 11028,
"appl_ci_id": "ASV",
"mth_dt": "2015-01",
"cost_curr": 0,
"qty_curr": "0",
"cost_trgt": 0,
"qty_trgt": "0",
"ftprnt": [
"Cloud"
]
}
]
,現在,我可以使用D3巢彙總由scenario_desc返回成本(cost_curr + cost_trgt)的總和, ftprnt和mth_dt這樣的:
var costByScn = d3.nest()
.key(function(d) { return d.scenario_desc })
.key(function(d) { return d.ftprnt })
.key(function(d) {
var mth_dt = new Date(d.mth_dt).getTime();
return mth_dt;
})
.rollup(function(v) {
return parseFloat(d3.sum(v, function(d) { return d.cost_curr + d.cost_trgt }))
})
.entries(response);
console.log("costByScn: ", JSON.stringify(costByScn));
,但我將如何得到appl_ci_id重複計數由scenario_desc,ftprnt和mth_dt?我還沒有使用D3,我可以使用的東西,如lodash做太多同樣的事情有限...
最終的結果是這樣的:
[
{
"key": "k1204",
"values": [
{
"key": "Both",
"values": [
{
"key": "1420070400000",
"values": 1
}
]
},
{
"key": "Cloud",
"values": [
{
"key": "1420070400000",
"values": 1
}
]
}
]
},
{
"key": "ktest",
"values": [
{
"key": "Cloud",
"values": [
{
"key": "1420070400000",
"values": 1
}
]
}
]
}
]
這裏是代碼jsbin以及...
https://jsbin.com/jicuxohawi/edit?js,console