Basic dc.js dataTable 显示错误的数据
Basic dc.js dataTable shows wrong data
我在 dc.js 中有一个基本数据表。我试图让它显示数据中所有值的列表。但是它显示了一个子集。此处非常简化 Fiddle:https://jsfiddle.net/dhbrt0om/1/
let ndx = crossfilter(data);
let chart = dc.dataTable("#tableExample");
let data_examplefield = ndx.dimension(function(d) {
return d.examplefield;
});
chart
.columns([
function(d) {
return d.examplefield;
},
])
.dimension(data_examplefield)
dc.renderAll();
(完整数据在 fiddle)
我已将数据表维度设置为相关字段。并且列函数应该 return 字段值。但它只显示了 5 个可能的值。在 .columns 函数中使用断点单步执行代码,我可以看到它 returning 20 个值 - 但不是来自正确的 20 个字段。
我可以看到,如果我将 data_examplefield 更改为:
let data_examplefield = ndx.dimension(function(d) {
return d.examplefield ? d.examplefield : 'none';
});
这有助于 return 计算值...但是为什么呢?为什么 'none' 不在那里?
我显然误解了一些基本的东西并且假设我会踢自己,但我就是看不到它。任何帮助表示赞赏。
啊,我看到这是因为每个字段都需要有一个值。它实际上列在 crossfilter gotchas wiki 中:https://github.com/crossfilter/crossfilter/wiki/Crossfilter-Gotchas
If the key function returns undefined for a single row, say due to a
missing field, this can corrupt the entire index.
我在 dc.js 中有一个基本数据表。我试图让它显示数据中所有值的列表。但是它显示了一个子集。此处非常简化 Fiddle:https://jsfiddle.net/dhbrt0om/1/
let ndx = crossfilter(data);
let chart = dc.dataTable("#tableExample");
let data_examplefield = ndx.dimension(function(d) {
return d.examplefield;
});
chart
.columns([
function(d) {
return d.examplefield;
},
])
.dimension(data_examplefield)
dc.renderAll();
(完整数据在 fiddle)
我已将数据表维度设置为相关字段。并且列函数应该 return 字段值。但它只显示了 5 个可能的值。在 .columns 函数中使用断点单步执行代码,我可以看到它 returning 20 个值 - 但不是来自正确的 20 个字段。
我可以看到,如果我将 data_examplefield 更改为:
let data_examplefield = ndx.dimension(function(d) {
return d.examplefield ? d.examplefield : 'none';
});
这有助于 return 计算值...但是为什么呢?为什么 'none' 不在那里?
我显然误解了一些基本的东西并且假设我会踢自己,但我就是看不到它。任何帮助表示赞赏。
啊,我看到这是因为每个字段都需要有一个值。它实际上列在 crossfilter gotchas wiki 中:https://github.com/crossfilter/crossfilter/wiki/Crossfilter-Gotchas
If the key function returns undefined for a single row, say due to a missing field, this can corrupt the entire index.