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

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

關于排序方法函數的問題?

為什么在左側的講解中說:“若返回值<=-1,則表示 A 在排序后的序列中出現在 B 之前。

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

比較迷惑他說的這個是這個只針對整數么?

對于小數是否應以0分界?

正在回答

3 回答

你試一下不就行了嗎?你把數組里的數改成小數,排一下就明白了。

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

慕桂英7260340 提問者

嗯,我明白了,但我不明白他這么寫有什么意義。。。。
2016-01-02 回復 有任何疑惑可以回復我~

我認為這種表述方式不對,應該改為:

比較函數的要求:該函數要比較兩個值,然后返回一個用于說明(我也不知道該怎么說了)。比較函數應該具有兩個參數 a 和 b,其返回值如下:?

若返回值<0,則表示根據排序要求A 在排序后的序列中出現在 B 之前。
若返回值=0,則表示根據排序要求 A 和 B 具有相同的排序順序。
若返回值>0,則表示根據排序要求A 在排序后的序列中出現在 B 之后。

(可參照你的問小數怎么問題)

舉個栗子:

//定義一個數組,數組里的每個元素都是字符串
var?myarr1=['love','I','java','javascript','php'];

//如果我要根據數組里面的元素的字符數量正序排列,要這么定義函數
function?sortStr(a,b){
????return?a.length-b.length;?
????//倒序則換成b.length-a.length;
}

//運行測試一下
document.write(myarr1+"<br>");//原始數組
document.write(myarr1.sort(sortStr)+"<br><br>");//排序后


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

a 和b的順序是按照返回值來定義的前后順序,比如a,b如果是2,3,那么升序的return(a-b);看值是-1按照定義是不是a在b前,如果返回值是return(b-a)看值是1,定義里說如果返回值是1,那么a在b的后面,所以理解這個不要被a-b或者b-a給迷惑了,他只是為了得出返回值的大小決定a,b兩個數的前后順序,不要理解為b-a的值是1,所以b在a后面剛好,因為定義里面的是返回值大于1,a在b后喲,按定義來就不會錯的。

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

慕桂英7260340 提問者

嗯,所以他只是針對整數情況下來說的。倒不如直接說大于0還是小于0了
2016-01-05 回復 有任何疑惑可以回復我~
#2

慕桂英7260340 提問者

而且既然是對于整數來說的 又說 >-1 && <1 那不是明白著就是0了,感覺有些誤導性, 我最初理解的就是排序 最簡單的方法就是減法嘛。。 他非要說什么1什么,我就以為那就是對于整數了,整數減法唄。 后來又說 >-1 && <1,讓我一頭霧水啊,這既然是整數了,還有什么 >-1 && <1啊 明明就只是0啊。 我還以為JS這是故意以1分界有什么我不知道的用意呢。。。。。
2016-01-05 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

關于排序方法函數的問題?

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

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

幫助反饋 APP下載

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

公眾號

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