第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

數(shù)組排序,sort()函數(shù)

<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>

這里為什么sortNum()函數(shù)里return a-b就定義了升序?

正在回答

2 回答

首先,題主要明確什么是冒泡排序。說白了就是兩兩比較

冒泡排序:它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。

這個(gè)算法的名字由來是因?yàn)樵酱蟮脑貢?huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端,故名。

//百度百科:http://baike.baidu.com/link?url=x3j1m3MP7w4PCz0OhJF7cJCbGmVSfGeE5cdxeQtMmXjhIXubh45qb8J_ZX3EVtc2zkb1wEm0cXijFePkzlyOc_

接下來,讓我們來看sort()方法

myArray.sort(sortMethod);

隨便定義一個(gè)sortMethod函數(shù):

?function sortNum(a,b) {
?return a - b;
//升序,如降序,把“a - b”該成“b - a”
}

/*注意:?該函數(shù)要比較兩個(gè)值,然后返回一個(gè)用于說明這兩個(gè)值的相對(duì)順序的數(shù)字。比較函數(shù)應(yīng)該具有兩個(gè)參數(shù) a 和 b,其返回值如下:?

? 若返回值<=-1,則表示 a在排序后的序列中出現(xiàn)在 b之前。
? 若返回值>-1 && <1,則表示 a 和 b 具有相同的排序順序。
? 若返回值>=1,則表示 a 在排序后的序列中出現(xiàn)在 b之后。*
/

這是什么意思呢就是說,計(jì)算機(jī)本身并不根據(jù)大小排序,它根據(jù)你寫的sort()里面的函數(shù),就是sortMethod,它的返回值來決定哪個(gè)數(shù)在先,哪個(gè)數(shù)在后。

?function sortNum(a,b)注意,這個(gè)a,b順序是不變的,計(jì)算機(jī)根據(jù)函數(shù)返回值判斷二者先后關(guān)系?。?!

舉個(gè)例子,a=100 b=20 ? ? a-b>=1說明a肯定比b大吧,然后就返回了1,sort方法一看,你這個(gè)返回值大于1啊,a就應(yīng)該在b后面,然后繼續(xù)比較下一組數(shù),就是用冒泡排序的方法比較下一組數(shù),你想,如果比較大的那個(gè)數(shù)往后排,這不就是升序嗎?

然后,你想降序,把函數(shù)改成b-a了,現(xiàn)在sort方法得到的返回值是b-a的了,現(xiàn)在a還是100,b還是20,b-a<=-1,sort方法一看,你這個(gè)返回值小于-1啊,a就應(yīng)該在b前面,然后,繼續(xù)冒泡排序,現(xiàn)在的情況是,比較小的那個(gè)數(shù)往后排,這不就是降序嗎?


5 回復(fù) 有任何疑惑可以回復(fù)我~
#1

juan_zi 提問者

很感謝!
2016-03-10 回復(fù) 有任何疑惑可以回復(fù)我~
#2

juan_zi 提問者

回答的非常詳細(xì),理解啦,謝謝
2016-03-10 回復(fù) 有任何疑惑可以回復(fù)我~

sort的參數(shù),為一個(gè)函數(shù),那么這個(gè)函數(shù)接受2個(gè)參數(shù),a, b
這個(gè)函數(shù)在:
a == b 是為0
a > b 時(shí)為 1
a < b時(shí) 為-1

2 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
JavaScript進(jìn)階篇
  • 參與學(xué)習(xí)       468765    人
  • 解答問題       22442    個(gè)

本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁動(dòng)態(tài)交互世界

進(jìn)入課程

數(shù)組排序,sort()函數(shù)

我要回答 關(guān)注問題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)