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

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

排序問題,如何理解函數 function sortNum(a,b) {return b-a;},這表示重寫底層函數嗎?


如何理解函數 ?function sortNum(a,b) {return b-a;},這表示重寫底層函數嗎?另外document.write(myarr.sort(sortNum));中sortNum表示函數為什么不寫成sortNum()呢?


<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Array對象 </title>

<script type="text/javascript">

? ?function sortNum(a,b) {

? ? return b-a;

? ?}

var myarr = new Array("80","16","50","6","100","1");

document.write(myarr.sort(sortNum));

</script>

</head>

<body>

</body>

</html>


正在回答

4 回答

關于sortNum()是否可以這樣理解:以兩個數為例a,b通過a-b判斷a-b的差與1和-1的大小關系。sort()函數自帶排序的方法? 再利用sort()函數的判斷依據( 若返回值<=-1,則表示 A 在排序后的序列中出現在 B 之前。
? 若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。
? 若返回值>=1,則表示 A 在排序后的序列中出現在 B 之后。)這樣的話就把a和b排列好。當然多個的話,可以從左至右兩兩相比較!至于ortNum表示函數為什么不寫成sortNum()呢?這個我也不清楚

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

sort(?? );括號中要有一個函數來確定排列順序。 sortNum(a,b)就是這個確定排列順序的函數。a,b不是參數,

在sort中直接寫 sort(sortNum)就可以。? return a-b是升序,return b-a是降序。

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

?function sortNum(a,b) {return b-a;},這表示重寫底層函數嗎也可以這么理解,因為?return b-a ?表示重新排列數組里的順序,document.write(myarr.sort(sortNum));中sortNum表示函數為什么不寫成sortNum()呢?因為sort()的語法為: ?stringobject.sort(函數方法); ?說明里面可以放方法?sortNum() 。

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

實際上代碼可以寫成:

1行 ? ? document.write(myarr.sort(function?(a,b){

2行 ? ? return?a?-?b;

3行 ? ? }))

而這里涉及到一個函數指針傳遞的問題(再次強調,是傳遞函數指針,而不是調用函數)。

假如定義 function test(){}; ,對于這個函數,test(即函數名)就是函數指針,test?指向函數主體。在實際些代碼中,我們可以將函數名替換為一個匿名函數,即 function(){},也就是我上面的那種寫法。


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

天涯蝶舞 提問者

返回a-b,應該是個數字,不是順序,也沒有排序的方法,如何通過返回的這個數字進行排序的呢?事將a-b的值返回到底層函數進行計算的嗎?
2016-07-10 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

排序問題,如何理解函數 function sortNum(a,b) {return b-a;},這表示重寫底層函數嗎?

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

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

幫助反饋 APP下載

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

公眾號

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