以下代码如何将数组按数字顺序排序?
var array=[25, 8, 7, 41]
array.sort(function(a,b){
return a - b
})
我知道如果计算结果小于0,"a"会按顺序排在"b"之前。
如果计算结果等于0,"a"和"b"被认为是相等的,不进行排序。
如果计算结果大于0,"b"会按顺序排在"a"之前。
在排序过程中,排序回调函数会被调用多次吗?
如果是这样的话,我想知道每次传递给函数的是哪两个数字。我最初认为第一次传入的是"25"(a)和"8"(b),接着是"7"(a)和"41"(b),因此:
25(a) - 8(b) = 17 (大于0,所以按顺序排序"b"应该在"a"之前): 8, 25
7(a) - 41(b) = -34 (小于0,所以按顺序排序"a"应该在"b"之前:7, 41
那么这两组数字是如何相对排序的呢?
请帮助一个苦苦挣扎的新手!
array.sort((a,b) => a - b);
是有效的语法。 - Sterling Archer