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

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

為什么return a-b可以決定升降序?

<!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 a-b;

? ?}

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

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

</script>

</head>

<body>

</body>

</html>


還有就是document.write(myarr.sort(sortNum));與document.write(myarr.sort(sortNum()));的區別,求大牛解釋

正在回答

5 回答

權威指南上的定義希望能幫到你·~http://img1.sycdn.imooc.com//57a587d500017fba24482448.jpg

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

這個函數的定義:myArray.sort(sortMethod);

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

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

按照定義:

若a-b<=-1即b-a>1 ,排序為AB(B較大)

? ?a-b>=1 ?則排序為BA (A較大)

也就是說較大的排在后面。。升序。。反之,b-a為降序。。。



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

乘蓄媛z 提問者

抱歉,不是很能理解
2016-08-05 回復 有任何疑惑可以回復我~
#2

逆風之夏

按照你的理論 若b-a<=-1即a-b>1 ,排序為ba(a較大) b-a>=1 則排序為ab(b較大) b-a還是升序?。。?!
2016-08-06 回復 有任何疑惑可以回復我~
#3

Yuuyu 回復 逆風之夏

ab只是變量符號,本身無具體的值。主要是function(a,b)這里的順序a在前面哦,定義的返回值也是根據這個來的,如果function(a,b) 返回的是b-a的話,也就是b-a=-(a-b)。建議你看定義,定義就是這么定義的啊。不是我說的
2016-08-06 回復 有任何疑惑可以回復我~
#4

Yuuyu 回復 逆風之夏

我把書上的定義放在評論了 你看看能不能理解~
2016-08-06 回復 有任何疑惑可以回復我~
查看1條回復

你是不是想問有沒有括號的區別?我覺得是這樣,sort()里面調用的是方法而不是屬性,就像array.length中length是屬性,所以不需要加括號,而mystr.toUpperCase()中toUpperCase()是方法名,所以調用時需要加上括號。這里同理,你在script中寫的是"function sortNum()",可見sortNum()被定義為一個方法,那么調用該方法時就應該加上括號,才是完整的方法名~不知道我說的是不是你要的~

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

乘蓄媛z 提問者

在這里有這個括號和沒這個括號結果是相差很大的,所以想搞懂
2016-08-04 回復 有任何疑惑可以回復我~

我認為,不是說function(a,b)在排序,排序的還是sort()函數,function(a,b)只是給一個排序的依據,而return a-b就是一種最常見的排序依據——按從小到大排。至于為什么,首先這是一個方法,就像定時器一樣的方法,js就是這么設定的,我也不知道。

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

可以這樣理解,不要理解成a減b的意思,理解成在26個字母中a到b的意思,在26個字母中b比a大,所以寫成a-b就是升序,寫成b-a就是降序。

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

金云澤

還是這種理解比較靠譜也更容易記憶。
2018-11-19 回復 有任何疑惑可以回復我~
#2

Rvie

太棒了
2019-03-16 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么return a-b可以決定升降序?

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

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

幫助反饋 APP下載

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

公眾號

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