如何创建一个通用函数来创建crossfilter.js维度

时间:2016-03-29 12:57:30

标签: javascript d3.js crossfilter

我正在尝试创建crossfilter.js维度和组的一般功能。到目前为止,我根据这种方式的数据的键名(列的名称)创建了一个特定的(具有'Weekday'列的示例):

DataArray= crossfilter(Data);
dimName = DataArray.dimension(function (d) { return d.Weekday; });
groupName= dinName.group().reduce(reduceAdd, reduceRemove, reduceInit);

很明显,这很有用,但我想创建一个可以创建尺寸的通用功能,无论列的名称如何。我曾经这样做过:

var x = Data[0];
var keyNames= d3.keys(x);

dimName = DataArray.dimension(function (d) { return d.keyNames[0]; });
...

这不起作用,因为'd.keyNames [0]'显然是错误的。 如何将keyNames传递给函数'd的返回值。 “...

我希望我能解释清楚。

1 个答案:

答案 0 :(得分:0)

替换

dimName = DataArray.dimension(function (d) { return d.Weekday; });

dimName = DataArray.dimension(function (d) { return d["column name"]; });

即使列名称包含空格,这也可以。