 
		weibo_e_狼传说_0
2016-10-30 14:28
 如果return a-b 返回的值是0.5 ,比如myarr[0]=16,myarr[1]等于15.5,那么return 0.5小于1 ,为什么还是能够正常的升序排序,不是应该顺序不变吗?
如果return a-b 返回的值是0.5 ,比如myarr[0]=16,myarr[1]等于15.5,那么return 0.5小于1 ,为什么还是能够正常的升序排序,不是应该顺序不变吗?
若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。这句话如何理解?
 
				这句话放在这里是错误的!
如果放在这么写:
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:毕竟良心免费课程,有些疏漏完全可以谅解..
 
				好像是说文本框中输入的数字被变成字符串,需要把字符串转化为数字,就像var one=parseInt(document.getElementById("txt1").value)。。。看到一位幕友说的
 
				sortNum(a ,b){
a=parseInt(a);
b=parseInt(b);
      return b-a;
}
JavaScript进阶篇
469067 学习 · 22582 问题
相似问题