根据两个数组的差异进行排序

时间:2020-06-03 18:39:26

标签: javascript arrays sorting

我有一个数组数组,其中需要根据元素值的差异进行排序。

以下是我使用的排序方法:

let arr = [[20, 60], [10, 30], [40, 200], [90, 300]];
let res = arr.sort(function(a, b) {
  return a[1] - a[0] > b[1] - b[0];
});

预期输出应为

[[90,300], [40,200], [20,60], [10,30]]
//difference between elements are 210,160,40 and 20

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您需要获取增量的增量,而不是返回布尔值。

Array#sort进行原位排序

let array = [[20, 60], [10, 30], [40, 200], [90, 300]];

array.sort((a, b) => (b[1] - b[0]) - (a[1] - a[0]));

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:1)

let arr = [[20, 60], [10, 30], [40, 200], [90, 300]];
let ans = arr.sort((a, b) => {
 return (Math.abs(b[0] - b[1])) - (Math.abs(a[0] - a[1]));
});
console.log(ans);