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

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

js函數語法問題

( ╯□╰ ),小白問一下各位大大,這里的 return a - b 到底是嘛子個意思?

正在回答

4 回答

參考了一些資料跟大神們的解釋,自己理解是這樣的:

1,sort的入參是一個function
2,sort根據function的參數和返回值對數組進行排序。?

比如參數是a,b,他們就是數組里的倆元素,返回值大于0表示a排在b后面,這樣a>b,a-b>0,a在b的后面,a>b升序;而a<b,b-a>0,a在b的后面,a<b降序。

看一下定義:

myArray.sort(sortMethod);

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

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

可能在函數內部還有一些算法,類似C語言的冒泡排序法,來真正實現升序跟降序的排序。

不知道理解的對不對,嘿嘿

??

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

慕粉1469604703

也可以這樣 function sortNum(a,b) {return a-b;} //a大,a在b之后,升序 function sortNum(a,b) {return b-a;}//b大,a在b之后,降序
2016-09-01 回復 有任何疑惑可以回復我~
#2

墨小漓 提問者 回復 慕粉1469604703

thank you 思密達!謝謝你的耐心解答。(●'?'●)看了你的解釋,小白忽然有一種豁然開朗的感覺,真厲害。大大o(^▽^)o ,收小白做徒弟吧。
2016-09-02 回復 有任何疑惑可以回復我~
#3

墨小漓 提問者

thank you 思密達。
2016-09-02 回復 有任何疑惑可以回復我~
#4

慕粉1469604703 回復 墨小漓 提問者

我也是小白一枚,剛接觸不久,一起學習哦!
2016-09-02 回復 有任何疑惑可以回復我~
#5

墨小漓 提問者 回復 慕粉1469604703

Yes,sir. (●'?'●)小白遇小白,皮膚變更白。
2016-09-02 回復 有任何疑惑可以回復我~
查看2條回復

o(^▽^)o 哈哈,謝謝你們的耐心解答。

你們說的小白知道了。

( ╯□╰ ),小白要問的不是減法的問題。看下面這段代碼。

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

? ?} ?//實現升序功能?這樣寫為什么就能實現升序功能

? ?function asortNum(a,b) {

? ? ? ?return b - a;

? ?} //實現降序功能?為什么能起到降序作用。

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

document.write(myarr.sort(sortNum)+"<br/>");

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

</script>

</head>

<body>

</body>

</html>

這段代碼實現了數組元素的升序和降序排列。關鍵是sort里面的函數起到了作用。可是那個函數為什么是這樣寫的。小白很不解。


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

imalwayshere

sort函數才是真正拿來排序的,sortNum是你自己給它的排序依據,sort內部根據你給的依據進行排序。sort內部可能用的是快速排序或者其他排序算法。這兩個自己寫的函數相當于你告訴他怎么排序,是大的放前面還是小的放前面。比如sortNum(a,b)接收兩個參數,如果a更大,那么sort就會把a放在b的后面。
2016-08-31 回復 有任何疑惑可以回復我~
#2

墨小漓 提問者 回復 imalwayshere

o(^▽^)o,thank you 思密達。
2016-09-01 回復 有任何疑惑可以回復我~
#3

墨小漓 提問者 回復 卡蘭尼克

我覺得sort會根據傳入參數的不同來處理排序,如果參數是一個函數,sort函數會根據傳入函數的返回值來進行相關處理。
2016-11-28 回復 有任何疑惑可以回復我~
#4

墨小漓 提問者 回復 卡蘭尼克

加油!
2016-11-28 回復 有任何疑惑可以回復我~
查看2條回復

a,b 是數字參數 ,a-b就是簡單減法運算

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

就是返回 a減去b的值。

比如下面這個函數返回a與b的差:

function?sub(a,?b)?{
????return?a-b;
}

如果我們調用:

var?result?=?sub(5,?3);
alert(result);

那么瀏覽器就會彈框顯示一個數字2。

----

那么在這里也和上面的函數sub()一樣,返回一個值。需要注意的是,如果函數返回值了,那么return語句后面的代碼就不會被執行了。

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

舉報

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

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

進入課程

js函數語法問題

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

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

幫助反饋 APP下載

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

公眾號

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