weibo_e_狼传说_0
2016-10-30 14:28
如果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进阶篇
468060 学习 · 21891 问题
相似问题