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

请问return a-b为什么是降序呢?

请问return  a-b为什么是降序呢,什么原理啊,看不大懂。。

提问者:努力_努力 2015-04-04 17:41

个回答

  • 偏爱花开的声音
    2015-06-10 19:19:25

    首先,我们要知道自定义函数的规则:

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

                       若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。

                       若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。

                       若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。

    然后,来定义我们自己的函数:

    1)按从小到大排(升序):

                        function sortNum(a,b){

                             return a-b;

                        } 

    举例:若a=1,b=3,则return的值为 -2<-1,那么a应该排在b之前,即1排在3之前,为从小到大排。

    2)按从大到小排(降序):

                        function sortNum2(a,b){

                             return b-a;

                        } 

    举例:若a=1,b=3,则return的值为 2>1,那么a应该排在b之后,即1排在3之后,为从大到小排。


  • 爱溜达
    2015-05-04 19:07:19

    看了些资料,初浅的理解可以这样:

    sort()函数,要实现特定排序的话,函数要求提供一个(比较函数做为)参数,该(函数)参数 要有两个比较值,而且需要返回值,用于说明这两个值的相对顺序的数字。这个比较函数的两个参数可以是 a 和 b,或者 x和y ,是象征意义,至于sort()函数拿到这个参数(比较函数)怎么内部处理,是系统内部的事,我们暂且不用关心,知道这么用就可以了


  • 爱溜达
    2015-05-04 18:59:18

    听大神说,这叫“值交换” 具体 也不太理解,先学着用吧

  • 努力_努力
    2015-04-04 17:44:31

    额,看到楼下的回答,知道了,,,冒泡排序