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