Javascript d3.next.rollup返回未定义的

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(

我有这样的数据结构(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(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);