data = [[1062, 732, 1327754], [12335, 7693, 109313934], [290, 450, 1768064]];
如何按数据中每个数组对象的第三个值进行排序,从而得到降序排序值
[[12335, 7693, 109313934], [290, 450, 1768064], [1062, 732, 1327754]]
我正在尝试使用 d3 方法:
data.sort(d3.descending);
data = [[1062, 732, 1327754], [12335, 7693, 109313934], [290, 450, 1768064]];
如何按数据中每个数组对象的第三个值进行排序,从而得到降序排序值
[[12335, 7693, 109313934], [290, 450, 1768064], [1062, 732, 1327754]]
我正在尝试使用 d3 方法:
data.sort(d3.descending);
您需要传递data.sort
一个比较函数,该函数将访问每个数组中的第三个元素:
data.sort(function(a, b){ return d3.descending(a[2], b[2]); })
这里因为data
是一个多维数组,两者都是a
数组b
。然后
d3.descending(a[2], b[2])
执行每个数组中的第三个元素的比较,以便按降序返回结果。
并且,如果要添加辅助排序,以便如果第三列值相等,则对第二列进行排序:
data.sort(function(a, b) {
if(a[2]===b[2]) {
return d3.descending(a[1], b[1]);
}
return d3.descending(a[2], b[2]);
};