Я работаю над визуализацией d3.js для приложения для представления времени. У меня есть данные строки в массиве, в котором содержатся отчеты о времени проекта (упрощенный):
[{ resource: "John Smith",
reporting_period: "2012/04/1",
project: "Java implementation",
hours: 8}
... }]
Я пытаюсь использовать оператор d3.nest для группировки фактических проектов по иерархии проекта, ресурса и периода. Все работает отлично, но я не могу найти способ получить промежуточные промежутки времени на промежуточных уровнях группировки, используя оператор nest.rollup().
У меня есть что-то вроде:
actuals_by_prj_rsrc_period = d3.nest()
.key(function(d) { return d["project"]; })
.key(function(d) { return d["resource"]; })
.key(function(d) { return d["reporting_period"]; })
.rollup(function(rows) {return {
tot_hours:d3.sum(rows, function(d) {return d["hours"];}),
actuals: rows
};})
.entries(actuals);
но он возвращает tot_hours только на уровне листа. Любые советы о том, как подойти к этому, используя только d3.nest?