如果return a-b 返回的值是0.5
如果return a-b 返回的值是0.5 ,比如myarr[0]=16,myarr[1]等于15.5,那么return 0.5小于1 ,為什么還是能夠正常的升序排序,不是應該順序不變嗎?
若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。這句話如何理解?
如果return a-b 返回的值是0.5 ,比如myarr[0]=16,myarr[1]等于15.5,那么return 0.5小于1 ,為什么還是能夠正常的升序排序,不是應該順序不變嗎?
若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。這句話如何理解?
2016-10-30
舉報
2016-10-31
這句話放在這里是錯誤的!
如果放在這么寫:
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:畢竟良心免費課程,有些疏漏完全可以諒解..
2016-10-30
好像是說文本框中輸入的數字被變成字符串,需要把字符串轉化為數字,就像var one=parseInt(document.getElementById("txt1").value)。。。看到一位幕友說的
2016-10-30
sortNum(a ,b){
?????? a=parseInt(a);
?????? b=parseInt(b);
????? return b-a;
}