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

为什么这个if -- else 语句 会排序失败?作用不是和return b-a;一样的吗?

代码如图,结果如下:80,6,50,16,100,1

提问者:imoocaccount 2017-11-27 18:19

个回答

  • 疯_少
    2017-11-27 21:23:21
    已采纳

    这个是W3C的定义,并不是自己写代码,而且你的代码也不对。

  • 魂千泷
    2017-12-14 09:30:07

     if(a<b) 
               return 1; 
            if(a>b) 
               return -1; 
            return 0;

    此处错误,return 0;上也要加if判断条件,

  • 吏仁
    2017-11-29 14:30:53

    你这个思路没问题,主要是你的数组里面是字符串,不是number类型,所以比较失败。如果是a-b会转换数据类型,所以可以排序成功

  • 吏仁
    2017-11-29 14:25:02

    应该用if...else if....else

  • imoocaccount
    2017-11-28 21:00:46

    我是想问function函数,函数是自己定义的,和w3c没有任何关系啊????

       function sortNum(a,b) {
            if(a<b)
               return 1;
            if(a>b)
               return -1;
            return 0;
       }

    以及

       function sortNum(a,b) {
         return b-a;
       }

    这两个函数作用我不明白到底哪里不一样???,求解释,详解,谢谢???