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

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

javascript 數組排序sort

<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是什么意思?

return a-b為什么是升序?

正在回答

2 回答

我剛學編程遇到這個函數的時候和你有一樣的困擾,但用多了就自然明白了。

首先,return 是返回一個值到函數外,在調用函數的地方能夠接收這個值,在這里,return 返回的是 a-b 的值。

第二個問題,a 和 b 是怎么回事。

我們看到 sortNum 函數的調用形式,

myarr.sort(sortNum)

是將 sortNum 作為參數傳到 sort 函數中,而 sort 函數是系統自帶的數組函數,由系統實現函數功能。

sortNum 函數要帶兩個參數也是系統所規定好的,在進行排序時,系統會按順序(從下標 0 一個個往后),將數組中的元素作為 a 和 b 參數傳入 sortNum 中。

比如,數組myarr,第一次傳入下標 0 元素 myarr[0] 作為 a,下標 1 元素 myarr[1] 作為 b,算出 a-b 的值,<=-1 則 a 在 b 前面,==0 則順序不變,>=1 則 b 在前 a 在后。比較完 myarr[0] 和 myarr[1],向后移一位,進行 myarr[1] 和 myarr[2] 的比較,這時,myarr[1] 是 a,myarr[2] 是 b,以此類推。

在這個例子中,我們是用 a-b 來計算出需要 return 的值,你也可以根據自己的需求通過別的方式算出 return 的值進行排序。

至于排序方法,不知道你有沒有看過“冒泡排序法”,如果沒有建議去看一下,是比較基礎和經典的排序算法,每個語言都有相應的實現,看完也能加深對 sort 的理解。

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

任巖 提問者

非常感謝!
2016-10-11 回復 有任何疑惑可以回復我~

return是返回值,return的值在sort()函數中使用。

sort函數參數規定>=1則a的排序在排序后數列中在b之后。a-b你可以理解為數值的比較(>=1, <=-1 , -1<return<1)。根據return的值進行排序

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

任巖 提問者

還是不太懂,a-b是怎么比較的?它們并沒有賦值。
2016-09-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468829    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

javascript 數組排序sort

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

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

幫助反饋 APP下載

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

公眾號

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