组值未正确排序

时间:2014-04-15 12:32:18

标签: javascript d3.js bigdata dc.js crossfilter

我使用crossfilter,d3和dc制作一些仪表板。 数据集是这样的:

{comune: "1001", year:1861, val: 10000},
{comune: "1001", year:1871, val: 10010},
{comune: "1001", year:1881, val: 20110},
...

年份和val都是数字。 我已经创建了一个功能来制作按钮以允许过滤数据集。这里的步骤:

1-我制作了一个cf维度

dimension = cfData.dimension( function (d) { return d.year; } ); 

2-和一个简单的计数小组

group = dimension.group().reduceCount(function (d) { return d.year; });

3-比我得到整个组,对于每个项目,我使用键作为标签添加按钮并过滤数据集

var bottoni = prinDashboard.group[settings.group.group].top(Infinity)
bottoni.forEach(function(d, i) {
  $(settings.container).append('<button type="button" class="btn btn-primary btn-small" data-filter="' + d.key + '">' + d.key + '</button>')
})

问题是:即使所有键都是数字键,组输出(bottoni)也没有正确排序。关键是:1861年,1871年,1881年,......,2011除了&#34; 1861&#34;值是最后一个而不是第一个!

我尝试使用.order()函数但结果很奇怪......所以我不会发布我的尝试...

您可以在此处查看所有内容:http://www.danielepennati.com/prove/mapping/prova_bottoni.php 有一些控制台日志,所以你可以看到发生了什么。

任何建议都会非常感激!

更新: 这里有一个简化调试的JSFiddle ... http://jsfiddle.net/danielepennati/qmGmU/2/

由于

丹尼尔

0 个答案:

没有答案