如果return a-b 返回的值是0.5

来源:7-22 数组排序sort()

weibo_e_狼传说_0

2016-10-30 14:28

http://img.mukewang.com/581591bd00019f7003520136.jpg如果return a-b 返回的值是0.5 ,比如myarr[0]=16,myarr[1]等于15.5,那么return 0.5小于1 ,为什么还是能够正常的升序排序,不是应该顺序不变吗?


若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。这句话如何理解?

写回答 关注

3回答

  • stone310
    2016-10-31 00:29:13

    这句话放在这里是错误的!

    如果放在这么写:

    var arr=[0.1,0.5,0.3];
    arr.sort(function(a,b){   
        if(a-b>0){
            return 1;
        }else if(a-b<0){
            return -1;
        }else{
            return 0;
        }
    })
    //如果这么写,这句话还能勉强能套进去,因为>0返回1,<0返回-1,相等就返回-1和1之间;

    如果放在这种写法就不能这么说了:

    var arr=[0.1,0.5,0.3];
    arr.sort(function(a,b){
       return a-b;
    })
    就如你说的,返回值就是小数,那还不是照样排序;

    因此这句话不对的,只有返回值为0的时候才是相等的情况

    PS:毕竟良心免费课程,有些疏漏完全可以谅解..

  • 糖醋肉3984350
    2016-10-30 17:20:10

    好像是说文本框中输入的数字被变成字符串,需要把字符串转化为数字,就像var one=parseInt(document.getElementById("txt1").value)。。。看到一位幕友说的


  • 糖醋肉3984350
    2016-10-30 17:06:19

    sortNum(a ,b){

           a=parseInt(a);

           b=parseInt(b);

          return b-a;

    }

    weibo_... 回复糖醋肉398...

    嗯嗯,好的

    2016-10-30 17:21:17

    共 3 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题