问答详情
源自:7-22 数组排序sort()

sort(方法函数)其中自定义的方法函数看不明白

.如果指定<方法函数>,则按<方法函数>所指定的排序方法排序。

myArray.sort(sortMethod);

注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下: 

  若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。
  若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。
  若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后


方法函数这样说明,要有两个参数a和b,然后还要有返回值,根据返回值的不同产生不同的排序顺序效果,那么这里是怎么产生返回值的,怎么使用参数a和b

为什么return a-b就是升序,return b-a就是降序,看不明白


提问者:qq_在迷宫_0 2016-11-05 17:22

个回答

  • stone310
    2016-11-06 07:41:49
    已采纳

    return a-b,如果a<b,那么就是负值,a就排在前面,如果a>b,那么就是正值,那么a就排在后面,所以就小的排前,大的排后,就是升序;

    return b-a,如果b<a,负值,a就排在前面,如果b>a,正值,a就排在后面,所以就大的排前,小的排后,就是升序


  • 卡兰尼克
    2016-11-21 18:46:13

    我也没看懂是什么意思。。。。如果你懂了回我一下

  • qq_在迷宫_0
    2016-11-05 17:39:21

    W3C的原文是这样的:

    若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

    若 a 等于 b,则返回 0。

    若 a 大于 b,则返回一个大于 0 的值。