我想创建和我在数组中获得的数据集一样多的维度。数据集量是可变的。在我的示例中,我有3个,但它可以更多或更少。
我的数据:
signalData: {
signal1: {
name: "",
data: {2,3,1,4,5,1,3},
},
signal2: {
name: "",
data: {2,3,1,4,5,1,3},
},
signal3: {
name: "",
data: {2,3,1,4,5,1,3},
},我试过这个:
var cf = crossfilter(flatData);
var dimension = cf.dimension(dc.pluck("key"));
var group = [];
for (var signal in this.signalData) {
dim = null;
var dim = dimension.group().reduceSum(function (d) {
return d[signal];
});
group.push(dim);
}但是所有3个呈现的图表都只显示signal3的数据
发布于 2020-11-05 23:01:37
我在entry in the FAQ中添加了一个更简单的解决方案。
Array.forEach通常是一个很好的解决方案,因为循环的当前迭代的值将被捕获在一个不会改变的局部变量中:
Object.keys(signalData).forEach(function(signal) {
dim = null;
var dim = dimension.group().reduceSum(function (d) {
return d[signal];
});
group.push(dim);
});在这里,我们使用Object.keys()来获取字段名称的数组,然后使用forEach遍历该数组。
(出于这个原因,我不经常使用for循环。)
https://stackoverflow.com/questions/64688322
复制相似问题