我已经使用dc.js创建数据表,我的要求是按照多列的降序对数据表进行排序。我使用了以下代码:dc.js按多列对数据表进行排序
.order(d3.descending)
.sortBy(function (d) {
return d.columnOne;
return d.columnTwo;
});
请帮忙。
我已经使用dc.js创建数据表,我的要求是按照多列的降序对数据表进行排序。我使用了以下代码:dc.js按多列对数据表进行排序
.order(d3.descending)
.sortBy(function (d) {
return d.columnOne;
return d.columnTwo;
});
请帮忙。
您传递给sortBy
的函数需要返回一个按照字典顺序或数字顺序排列所需行顺序的键。
当您试图在那里返回两个值是不可能的。相反,
columnOne
任何字符较低ASCII值的字符,或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;
});
我提前道歉,如果有这个代码的任何错误,因为它是未经测试。
我不知道任何方式来做到这一点,如果一列是数字,另一列是字符串。
戈登的方法为我工作,与未成年人调整
我的两列分别为一个字符串,一个数字,我用
.sortBy(function (d) {
return [d.columnOne,d.columnTwo].join();
});
该诀窍。谢谢戈登! :-)
你有什么只会返回'd.columnOne'并忽略其余。你是否在尝试使用'd.columnTwo'作为辅助排序键? – Gordon 2015-03-19 14:17:25
是啊,戈登,我想排序多列数据表,列属性是'd.columnOne'和'd.columnTwo'。 – ali 2015-03-20 05:31:34