小编典典

Javascript的sort()如何工作?

javascript

以下代码如何将该数组按数字顺序排序?

var array=[25, 8, 7, 41]

array.sort(function(a,b){
  return a - b
})

我知道如果计算结果是…

小于0 :“ a”被排序为比“ b”低的索引。
零: “ a”和“ b”被视为相等,并且不执行排序。
大于0: “ b”被排序为比“ a”低的索引。

在排序过程中是否多次调用了数组排序回调函数?

如果是这样,我想知道每次将两个数字传递给函数。我假设它首先使用“ 25”(a)和“ 8”(b),然后是“ 7”(a)和“ 41”(b),所以:

25(a)-8(b)= 17(大于零,因此将“ b”排序为比“ a”低的索引):8、25

7(a)-41(b)= -34(小于零,因此将“ a”排序为比“ b”低的索引:7、41

那么如何将两组数字彼此相对排序?

请帮助陷入困境的新手!


阅读 344

收藏
2020-04-25

共1个答案

小编典典

在排序过程中是否多次调用了数组排序回调函数?

如果是这样,我想知道每次将两个数字传递给函数

您可以通过以下方式了解自己:

array.sort((a,b) => {
  console.log(`comparing ${a},${b}`);
  return a > b ? 1
               : a === b ? 0 
                         : -1;
});

编辑

这是我得到的输出:

25,8
25,7
8,7
25,41
2020-04-25