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

解释一下函数功能的构成?为什么升序和降序

function sortNum(a,b) {
 return a - b;
//升序,如降序,把“a - b”该成“b - a”
}

提问者:_旺insist 2016-08-06 13:23

个回答

  • 王凯盛
    2016-08-06 14:14:22
    已采纳

    其实,就是这么规定的,虽然很难理解,但事实就是这样。

  • 萌萌软妹的日常
    2016-08-18 11:21:35

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

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

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

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

    function  sortnum(a,b){

    return a-b;

    }

    升序:

    80-16=64;    //>=1  a位于b的后面  80后移

    80-50=30;    //>=1  a位于b的后面  80后移

    80-6-74;

    80-100=-20;   //<=-1 a位于b的前面

    80-1=79;


    79,74,64,30,-20;

    1,6,16,50,100;

    /////////////


    降序:

    function  sortnum(a,b){

    return b-a;

    }

    16-80=-64;      //<=-1   a位于b的前面  即80位于16之前

    50-80=-30;     //<=-1    a位于b的前面  即80位于50之前

    6-80=-74;

    100-80=20;     //>=1    a位于b的后面  即80位于100之后

    1-80=-79;

    20,-30,-64,-74,-79;



    100,50,16,6,1;


  • 慕慕9852044
    2016-08-06 14:06:46

    可以把它理解成冒泡排序法,对于a和b,a大于b时,返回的值大于1,a排在b后面;a小于b,返回的值小于-1,a排在b前面,这是升序。改成”b-a“时,分析是一样的,不过变成了降序