課程
/前端開發
/JavaScript
/JavaScript進階篇
( ╯□╰ ),小白問一下各位大大,這里的 return a - b 到底是嘛子個意思?
2016-08-31
源自:JavaScript進階篇 7-22
正在回答
參考了一些資料跟大神們的解釋,自己理解是這樣的:
1,sort的入參是一個function2,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語言的冒泡排序法,來真正實現升序跟降序的排序。
不知道理解的對不對,嘿嘿
??
慕粉1469604703
墨小漓 提問者 回復 慕粉1469604703
墨小漓 提問者
慕粉1469604703 回復 墨小漓 提問者
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里面的函數起到了作用。可是那個函數為什么是這樣寫的。小白很不解。
imalwayshere
墨小漓 提問者 回復 imalwayshere
墨小漓 提問者 回復 卡蘭尼克
a,b 是數字參數 ,a-b就是簡單減法運算
就是返回 a減去b的值。
比如下面這個函數返回a與b的差:
function?sub(a,?b)?{ ????return?a-b; }
如果我們調用:
var?result?=?sub(5,?3); alert(result);
那么瀏覽器就會彈框顯示一個數字2。
----
那么在這里也和上面的函數sub()一樣,返回一個值。需要注意的是,如果函數返回值了,那么return語句后面的代碼就不會被執行了。
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答函數的語法問題
3 回答js語法問題
4 回答JS函數,while問題
2 回答js函數調用問題
3 回答js函數調用問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-09-01
參考了一些資料跟大神們的解釋,自己理解是這樣的:
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語言的冒泡排序法,來真正實現升序跟降序的排序。
不知道理解的對不對,嘿嘿
??
2016-08-31
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里面的函數起到了作用。可是那個函數為什么是這樣寫的。小白很不解。
2016-08-31
a,b 是數字參數 ,a-b就是簡單減法運算
2016-08-31
就是返回 a減去b的值。
比如下面這個函數返回a與b的差:
如果我們調用:
那么瀏覽器就會彈框顯示一個數字2。
----
那么在這里也和上面的函數sub()一樣,返回一個值。需要注意的是,如果函數返回值了,那么return語句后面的代碼就不會被執行了。