D3.js按编号排序表,然后按字母顺序排序(作为打破平局)

时间:2014-02-07 23:01:07

标签: javascript sorting d3.js

我有一个包含两列数据的表。当我使用列[1]排序时,我需要根据列[0]的字母值进一步排序。

这将按第二列中的浮点值对表进行排序,但我想按字母顺序对第一列中的字符串值进行排序。

return tbody.selectAll("tr").sort(function(a, b) 
{
    isSorted = true;
    d3.ascending(parseFloat(a[1]), parseFloat(b[1]));
})

1 个答案:

答案 0 :(得分:4)

return tbody.selectAll("tr").sort(function(a, b) {
   d3.ascending(parseFloat(a[1]), parseFloat(b[1])) ||
     d3.ascending(a[0], b[0]);
})

如果[1]处的值相等,d3.ascending会返回0,这将导致javascript在||(又名or之后评估第二个表达式)并返回其价值。

请注意,如果第一个函数调用返回1-1,则第二个表达式中的函数调用甚至不会执行。