課程
/前端開發(fā)
/JavaScript
/JavaScript進階篇
()里面的a,b是什么?函數也沒在下面調用啊?
2014-12-22
源自:JavaScript進階篇 7-22
正在回答
看了些資料,初淺的理解可以這樣:
sort()函數,要實現特定排序的話,函數要求提供一個(比較函數做為)參數,該(函數)參數 要有兩個比較值,而且需要返回值,用于說明這兩個值的相對順序的數字。這個比較函數的兩個參數可以是 a 和 b,或者 x和y ,是象征意義,至于sort()函數拿到這個參數(比較函數)怎么內部處理,是系統內部的事,我們暫且不用關心,知道這么用就可以了
兩位的回答都有可取的地方,第一位的簡單明了,第二位略顯專業(yè)。。。
唉,樓上說的有錯誤。
“當函數返回值為1的時候就交換兩個數組項的順序,否則就不交換”這句話絕對是錯的。
arrayObject.sort(sortby)?
sortby ? ?可選。規(guī)定排序順序。必須是函數。 ? ?
返回值
對數組的引用。請注意,數組在原數組上進行排序,不生成副本(也就是說原數組會發(fā)生改變)。
說明
如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元素都轉換成字符串(如有必要),以便進行比較。
如果想按照其他標準進行排序,就需要提供比較函數,該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:
若 a 小于 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于 b,則返回一個大于 0 的值。
<script type="text/javascript">function sortNumber(a,b){? return a - b}var arr = new Array(6)????arr[0] = "10"????arr[1] = "5"????arr[2] = "40"????arr[3] = "25"????arr[4] = "1000"????arr[5] = "1"document.write(arr + "<br />")document.write(arr.sort(sortNumber))</script>
輸出:
10,5,40,25,1000,11,5,10,25,40,1000
menghuanbaolei
sort()排序時每次比較兩個數組項都回執(zhí)行這個參數,并把兩個比較的數組項作為參數傳遞 給這個函數。當函數返回值為1的時候就交換兩個數組項的順序,否則就不交換。這里是涉及到算法的,你可以在網上搜一些算法題自己先了解一下算法
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態(tài)交互世界
3 回答求解function sortNum(a,b)
3 回答functuon sortNum()函數
1 回答sort(sortNum)函數
1 回答函數sortNum問題
4 回答數組里的sort 自定義函數function sortNum(a,b) { return b-a; }
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優(yōu)惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-05-04
看了些資料,初淺的理解可以這樣:
sort()函數,要實現特定排序的話,函數要求提供一個(比較函數做為)參數,該(函數)參數 要有兩個比較值,而且需要返回值,用于說明這兩個值的相對順序的數字。這個比較函數的兩個參數可以是 a 和 b,或者 x和y ,是象征意義,至于sort()函數拿到這個參數(比較函數)怎么內部處理,是系統內部的事,我們暫且不用關心,知道這么用就可以了
2014-12-23
兩位的回答都有可取的地方,第一位的簡單明了,第二位略顯專業(yè)。。。
2014-12-23
唉,樓上說的有錯誤。
“當函數返回值為1的時候就交換兩個數組項的順序,否則就不交換”這句話絕對是錯的。
arrayObject.sort(sortby)?
sortby ? ?可選。規(guī)定排序順序。必須是函數。 ? ?
返回值
對數組的引用。請注意,數組在原數組上進行排序,不生成副本(也就是說原數組會發(fā)生改變)。
說明
如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元素都轉換成字符串(如有必要),以便進行比較。
如果想按照其他標準進行排序,就需要提供比較函數,該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:
若 a 小于 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于 b,則返回一個大于 0 的值。
<script type="text/javascript">
function sortNumber(a,b)
{
? return a - b
}
var arr = new Array(6)
????arr[0] = "10"
????arr[1] = "5"
????arr[2] = "40"
????arr[3] = "25"
????arr[4] = "1000"
????arr[5] = "1"
document.write(arr + "<br />")
document.write(arr.sort(sortNumber))
</script>
輸出:
10,5,40,25,1000,1
1,5,10,25,40,1000
2014-12-23
sort()排序時每次比較兩個數組項都回執(zhí)行這個參數,并把兩個比較的數組項作為參數傳遞 給這個函數。當函數返回值為1的時候就交換兩個數組項的順序,否則就不交換。這里是涉及到算法的,你可以在網上搜一些算法題自己先了解一下算法