为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

6 回答

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

该自定义函数函数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之后,为从大到小排。


1 回复 有任何疑惑可以回复我~

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

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


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信