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

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

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


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

正在回答

3 回答

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

如果放在这么写:

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:毕竟良心免费课程,有些疏漏完全可以谅解..

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

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


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

sortNum(a ,b){

       a=parseInt(a);

       b=parseInt(b);

      return b-a;

}

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

weibo_e_狼传说_0 提问者

若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序?主要是我不懂这句话,返回值<=-1和返回值<=1都能理解
2016-10-30 回复 有任何疑惑可以回复我~
#2

糖醋肉3984350 回复 weibo_e_狼传说_0 提问者

var one=parseInt(document.getElementById("txt1").value)。。所学有限,希望来大神解答。。
2016-10-30 回复 有任何疑惑可以回复我~
#3

weibo_e_狼传说_0 提问者 回复 糖醋肉3984350

嗯嗯,好的
2016-10-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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