var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){return a - b}) //Array now becomes [7, 8, 25, 41]
只需将其更改为
var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){console.log("comparing " + a + ", " + b);return a - b}) //Array now becomes [7, 8, 25, 41]
在控制台日志中尝试上述代码后,您将看到以下结果
var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){console.log("comparing " + a + ", " + b);return a - b}) //Array now becomes [7, 8, 25, 41]
被解释为升序吗?它应该分为三种情况, 0 ;但是当 a 和 b 可以是任何值时,这有什么意义呢?
第一次比较:25,8
现在,让我们来解答您对它如何选择 a、b 值的疑问。当您运行代码时,您会看到第一个比较是在 25,8 之间进行的,如果结果为正,则意味着 8 较小。所以它只是将其重新排序为 8、25。
第二个比较:25,7
接下来比较 25 和 7 ,因为如果结果为负数,则将第三个数字放在 25 后面,并对这三个数字进行排序。
但情况不同了,现在结果再次呈阳性。该数组仍将自身重新排序为
8, 7, 25
之后它再次执行测试,直到发现条件为阳性。所以现在它比较 8、7,结果又是负数。
该数组再次重新排序为
7, 8, 25
第三个比较:25、41
现在,在最后一次比较中,结果为正,这意味着 41 大于 25。
因此数组将自身重新排序为
7,8,25,41