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

提出一个小问题

比较函数应该具有两个参数 a 和 b,其返回值如下:    

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

这段说明是有问题的,因为我试验了差值小于1的几个浮点数排序,也能正确完成,所以我设想返回值应该是:  

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

提问者:点赞狂魔 2017-08-29 18:41

个回答

  • 我要SSR
    2017-08-30 14:06:21

    这里是老师写错了吧,自己知道就好了

  • qq_灰色头像_17
    2017-08-30 12:32:22

    <!DOCTYPE html>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Array对象 </title>

    <script type="text/javascript">

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


       }

    var myarr = new Array("80","16","50","6","100","1",0,0.1,-12,-0.1,0.4,-0.4);

    document.write(myarr+"<br/>");

    document.write(myarr.sort()+"<br/>");

    document.write(myarr.sort(sortNum));

    </script>

    </head>

    <body>

    </body>

    </html>

    结果80,16,50,6,100,1,0,0.1,-12,-0.1,0.4,-0.4
    -0.1,-0.4,-12,0,0.1,0.4,1,100,16,50,6,80
    -12,-0.4,-0.1,0,0.1,0.4,1,6,16,50,80,100

  • 慕UI7259014
    2017-08-29 21:22:35

    http://img.mukewang.com/59a56a71000183c509480554.jpg请问你试了几组数据?