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

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

這段代碼中,return a-b;是如何實現(xiàn)對數(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>

正在回答

6 回答

我來最后補充回答一下,首先要明白兩點:

1、關(guān)于sort(sortby)中的sort排序機制,也就是關(guān)于sortby函數(shù)作為sort()參數(shù)來指導(dǎo)sort()的排序方式,詳情見?JavaScript sort() 方法?這是w3c的介紹,理解這個的重點就是這幾句話:http://img1.sycdn.imooc.com//5764369f0001654406000072.jpg

換句話說就是:1.返回值小于0,a,b在數(shù)組中順序不變

???????????????????? ? ?2.返回值小于0,a,b在數(shù)組中順序不變,(變不變有什么區(qū)別呢 - -?。?/p>

???????????????????? ? ?3.返回值大于0,a,b在數(shù)組中順序交換

????????

*請注意上面幾行是排序的規(guī)定,就像1+1=2一樣,是?javascript約定俗成的規(guī)定?。。。?!


2、排序方法sort()中的執(zhí)行過程(算法問題)不必深究,我的理解是以循環(huán)比較的方式排列出來了,你只要明白計算機使出渾身解數(shù)以你制定的規(guī)則(sortby)循環(huán)比較,把你想要的排列展現(xiàn)出來了。

--------------------------------------分割線------------分割線------------------------------------------------------

eg:那么在這段代碼中 我來以 return a-b 為什么是升序為例來解釋一下

<script type="text/javascript">
?function sortNum(a,b)?{
?return a - b;

var arr = [1,11,3,4,5];

alert(arr.sort(sortNum)); ? ? //[1,3,4,5,11]

</script>

當開始排序的時候,

首先把a=1和b=11作為參數(shù)傳到sortNum(a,b)中,由于1-11<0,按照規(guī)定中的第1條,1,11在數(shù)組中順序不變;

……此處省略中間相似循環(huán)比較……

在排序到了數(shù)值11的時候,舉例11和3比較,把a=11和b=3作為參數(shù)傳數(shù)sortNum(a,b)中,由于11-3>0,按照規(guī)定中的第3條,排序后,11和3交換位置。

這樣在經(jīng)歷了不知道多少次的循環(huán)比較之后,數(shù)組的輸出就變成了[1,3,4,5,11],也就是我們理解的升序排列,同理可以理解b-a了吧~~~

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

cjy小靠譜

請問一下 b - a 也是遵循 b < a , b排前面的規(guī)則,那輸出的也應(yīng)該是升序(我以為a,b就是一個符號而已,這種想法在這邊是不是不適用?)
2016-11-21 回復(fù) 有任何疑惑可以回復(fù)我~

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

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

function sortNum() 返回的是?a減b的值

myarr.sort(sortNum)相當于myarr.sort(a-b)

a-b<=-1,則表示 A 在排序后的序列中出現(xiàn)在 B 之前。
a-b>-1 && <1,則表示 A 和 B 具有相同的排序順序。
a-b>=1,則表示 A 在排序后的序列中出現(xiàn)在 B 之后


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

試試這個Arrays.sort();

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

具體怎么排序需要看看js引擎使用那種算法了(可以看瀏覽器源碼或查相關(guān)的資料,反正我是不知道)。。

你傳入的這個函數(shù)只是告訴引擎規(guī)則,是升序?還是降序?

0 回復(fù) 有任何疑惑可以回復(fù)我~
1.myarr.sort(sortNum)是這個排序方法


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

舉報

0/150
提交
取消

這段代碼中,return a-b;是如何實現(xiàn)對數(shù)值大小進行排序的?謝謝

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

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

幫助反饋 APP下載

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

公眾號

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