亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為何a-b和b-a不一樣?

學習中的例子如下:

<script type="text/javascript">
?function sortNum(a,b) {
?return a - b;
//升序,如降序,把“a - b”該成“b - a”
}
var myarr = new Array("80","16","50","6","100","1");
?document.write(myarr + "<br>");
?document.write(myarr.sort(sortNum));
</script>

為何return a-b就是升序,而b-a就是降序,比較函數時,無論a-b還是b-a都只是兩個參數,從數學角度,我可以把b看作a,把a看作b,為何結果是不同的呢?

正在回答

4 回答

該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:?

? 若返回值<=-1,則表示 A 在排序后的序列中出現在 B 之前。
? 若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。
? 若返回值>=1,則表示 A 在排序后的序列中出現在 B 之后

好好看下這個,就能理解了

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

WingFrank 提問者

對,懂了一點了,我覺得其實還有個對應關系,及a對應A,b對應B的關系,當sortNum(a,b),變成了sortNum(b,a),那么返回規則中的A和B也應該對換了,當時一直卡在規則這里沒懂。謝謝。
2016-04-20 回復 有任何疑惑可以回復我~

我對于例子是這樣理解的: ? ? ? 因為a-b的值就是sort函數的參數,當參數<=-1時,,就表示在unicode表中a在b之前,所以sort函數自動將a,b降序排列

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

雖然從數學的角度說沒錯,但是你用的是人家已經封裝好了的sortNum函數,函數內部將a和b定順序了,a-b和b-a不能等同??梢灶惐葹閍1-a2和a2-a1,你那種是忽略順序,相當于a-a和b-b,能理解么?

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

TheRedWolf

他所用的應該不是已經封裝好了的吧??如果是別人封裝好了的函數的話,那應該是直接調用函數?。?!就像是調用length()函數一樣,可是例子中,分明只用了定義函數的語句 function 啊
2016-04-16 回復 有任何疑惑可以回復我~

該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:?

? 若返回值<=-1,則表示 A 在排序后的序列中出現在 B 之前。
? 若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。
? 若返回值>=1,則表示 A 在排序后的序列中出現在 B 之后


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

舉報

0/150
提交
取消

為何a-b和b-a不一樣?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號