我有一个包含两列数据的表。当我使用列[1]排序时,我需要根据列[0]的字母值进一步排序。
这将按第二列中的浮点值对表进行排序,但我想按字母顺序对第一列中的字符串值进行排序。
return tbody.selectAll("tr").sort(function(a, b)
{
isSorted = true;
d3.ascending(parseFloat(a[1]), parseFloat(b[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
,则第二个表达式中的函数调用甚至不会执行。