Javascript D3数据表中的第一行排序不正确-D3/DC/Crossfilter

Javascript D3数据表中的第一行排序不正确-D3/DC/Crossfilter,javascript,sorting,d3.js,dc.js,crossfilter,Javascript,Sorting,D3.js,Dc.js,Crossfilter,我有一些用于呈现数据表的基本d3/dc/crossfilter代码。datatable应按列N(即简单的行号)排序。每当在浏览器中呈现表格时,某个随机行就是最上面的行,然后在第二行中显示最高的行,然后根据需要显示下一个最高的行。我最初认为这个错误可能是因为chrome的排序不安全,但是考虑到N列的所有值都是唯一的,这不应该是一个问题 我的代码: function makeGraphs(error, trades) { trades.forEach(function(d) {

我有一些用于呈现数据表的基本d3/dc/crossfilter代码。datatable应按列N(即简单的行号)排序。每当在浏览器中呈现表格时,某个随机行就是最上面的行,然后在第二行中显示最高的行,然后根据需要显示下一个最高的行。我最初认为这个错误可能是因为chrome的排序不安全,但是考虑到N列的所有值都是唯一的,这不应该是一个问题

我的代码:

function makeGraphs(error, trades) {

     trades.forEach(function(d) {
         d['N'] = +d['N'] 
})  


var tradeTable = dc.dataTable("#dc-table-graph");

var trades = crossfilter(trades);

var NDimension = trades.dimension(function (d) {
    return d['N']});


tradeTable.width(960).height(800)
.dimension(NDimension)
.group(function(d) { return "trades"
})
.size(110)
.columns([
function(d) { return d.N; },
function(d) { return d['Profit']; },
])
.sortBy(function(d){ return -d.N; })
.order(d3.descending)
dc.renderAll();
 };
我的输出如下

N     Profit
54     .56
107    .36
106     .33
105     .25
104     .21
all the way down to N=1 
显然,第一排不应该是54,但出于某种原因,它是54

有什么想法吗


谢谢

我建立了这方面的工作示例,但无法重现问题:

请随意提出异议,并尝试为我们重现问题

我要指出

trades.forEach(function(d) {
  d['N'] = +d['N'] 
})

对我来说,似乎没有做任何关于排序的事情,因为在排序中,它是
-d.N
,无论如何它都会转换成一个数字。

这很奇怪。你能为这个问题创建一个工作示例吗?JSFIDLE或类似的站点在这方面做得很好。看起来它们仍然是按字符串排序的,尽管forEach在顶部。我想知道代码是否按此处显示的顺序执行。^是的。奇怪的是,它可以在internet explorer中工作,但不能在chrome中工作