首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dc.js:动态多维

dc.js:动态多维
EN

Stack Overflow用户
提问于 2020-11-05 05:59:33
回答 1查看 46关注 0票数 1

我想创建和我在数组中获得的数据集一样多的维度。数据集量是可变的。在我的示例中,我有3个,但它可以更多或更少。

我的数据:

代码语言:javascript
复制
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},
},

我试过这个:

代码语言:javascript
复制
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的数据

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-05 23:01:37

我在entry in the FAQ中添加了一个更简单的解决方案。

Array.forEach通常是一个很好的解决方案,因为循环的当前迭代的值将被捕获在一个不会改变的局部变量中:

代码语言:javascript
复制
  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循环。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64688322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档