我使用dc.js创建数据表,我的要求是按多列的降序对数据表进行排序。我使用了以下代码:
.order(d3.descending)
.sortBy(function (d) {
return d.columnOne;
return d.columnTwo;
});
请帮忙。
答案 0 :(得分:2)
传递给sortBy
的函数需要返回一个按键,按行或按字母顺序对行按所需顺序排序。
当您尝试执行此操作时,无法返回两个值。相反,
columnOne
中任何字符的字符分隔,或者columnOne
乘以一个大于columnTwo
中任何值的数字,然后再添加两个
值接近一个字符串:
.order(d3.descending)
.sortBy(function (d) {
return [d.columnOne,d.columnTwo].join('\x0');
});
方法二,数字
.order(d3.descending)
.sortBy(function (d) {
return d.columnOne * 1e9 + d.columnTwo;
});
如果此代码中有任何错误,我会提前道歉,因为它未经测试。
如果一列是数字而另一列是字符串,我不知道有什么方法可以做到这一点。
答案 1 :(得分:1)
戈登的方法为我工作,只需稍作调整
我的两列是一个字符串,一个数字,我用
.sortBy(function (d) {
return [d.columnOne,d.columnTwo].join();
});
这就是诀窍。谢谢戈登! : - )