Javascript d3.next.rollup返回未定义的
我有这样的数据结构(CSV文件): 我想做的是这样按日期总结Javascript d3.next.rollup返回未定义的,javascript,d3.js,Javascript,D3.js,我有这样的数据结构(CSV文件): 我想做的是这样按日期总结 var summedData = d3.nest() .key(function(d) { return d.Datum;}) .rollup(function(v) { return { date: v.Datum, total: d3.sum(v, function(d) { return d.Betrag; }), category: v.Kategorie}; }) .entries(
var summedData = d3.nest()
.key(function(d) { return d.Datum;})
.rollup(function(v) { return {
date: v.Datum,
total: d3.sum(v, function(d) { return d.Betrag; }),
category: v.Kategorie};
})
.entries(data);
但是,这会返回如下对象:
object{
key: "01/10/2015"
values: object{
date: undefined
category: undefined
sum: 1586.7
}
}
return {
date: v[0].Datum,
...
我不明白为什么
日期
和类别
没有定义,以及如何修复它。有人能帮忙吗?在你的汇总中,v
是一个数组,因此,v.Datum
和v.Kategorie
是未定义的。这样做:
object{
key: "01/10/2015"
values: object{
date: undefined
category: undefined
sum: 1586.7
}
}
return {
date: v[0].Datum,
...
将适用于Datum
,因为它会重复并且是唯一的,但是Kategorie
不会,那么:
category: v.map(function(d){
return d.Kategorie;
})
当然,这取决于你的最终目标
完整代码:
var数据=[{“数据”:“01/10/15”,“名称”:“Kategorie”:“Lohn”,“Betrag”:“1586.7”},{“数据”:“02/10/15”,“名称”:“Kategorie”:“午餐”,“Betrag”:“-4.55”},{“数据”:“02/10/15”,“名称”:“kaisla”,“Kategorie”:“Ausgehen”,“Betrag”:“-16.2”});
var summedData=d3.nest()
.键(功能(d){
返回d.数据;
})
.汇总(功能(v){
返回{
日期:v[0]。基准,
总计:d3.和(v),函数(d){
返回d.Betrag;
}),
类别:v.map(功能(d){
返回d.Kategorie;
})
};
})
.条目(数据);
console.log(summedData);