以下代码如何按数字顺序对此数组进行排序?
var array=[25, 8, 7, 41]
array.sort(function(a,b){
return a - b
})
Run Code Online (Sandbox Code Playgroud)
我知道如果计算结果是......
小于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
那么这两组数字如何相互排序?
请帮助一个苦苦挣扎的新手!
正如已经问过的那样:排序功能如何在JavaScript中运行,以及compare功能?如果我有一个数组,我array.sort(compare)现在在书中写道,如果compare函数返回a-b(数组的两个索引),那么它的工作原理是结果是否大于0,小于0或等于但是,它究竟是如何运作的?我无法解决这个问题.
我总是这样成功地对我的数组进行排序(当我不想要标准的词典排序时):
var arr = […] // some numbers or so
arr.sort(function(a, b) {
return a > b;
});
Run Code Online (Sandbox Code Playgroud)
现在,有人告诉我这是错的,我需要return a-b改为.这是真的,如果是的话为什么?我测试了我的比较功能,它有效!另外,为什么我的解决方案在出错时会如此常见?