<html>
<body>
<script type="text/javascript">
function sortNumber(a, b) {
return a - b
}
var arr = ['30', '20', '50', '1'];
document.write(arr.sort(sortNumber))
</script>
</body>
</html>
arr.sort():系統(tǒng)函數(shù)斤寂,處理arr數(shù)組相鄰兩個元素田巴。
這里sortNumber是自定義的排序條件。
因為sort()函數(shù)的排序條件是:參數(shù)大于0砍艾,arr的相鄰兩個元素交換位置;
參數(shù)小于0卖鲤,arr的相鄰兩個元素不交換位置;
參數(shù)等于0肾扰,arr的相鄰兩個元素大小相等;所以sortNumber自定義函數(shù)必須返回一個數(shù)值。
(a-b)表示相鄰兩個元素按照前一個元素減去后一個元素.并返回這個數(shù)值扫尖,sort()函數(shù)根據(jù)這個數(shù)值的正負來確定arr當(dāng)前兩個元素是否交換位置白对。
反之:b-a就變成倒序了掠廓。這就意味這b-a表示相鄰兩個元素按照后一個元素減去前一個元素.并返回這個數(shù)值换怖,sort()函數(shù)根據(jù)這個數(shù)值的正負來確定arr當(dāng)前兩個元素是否交換位置。
JavaScript sort() 方法說明
如果調(diào)用該方法時沒有使用參數(shù)蟀瞧,將按字母順序?qū)?shù)組中的元素進行排序沉颂,說得更精確點,是按照字符編碼的順序進行排序悦污。要實現(xiàn)這一點铸屉,首先應(yīng)把數(shù)組的元素都轉(zhuǎn)換成字符串(如有必要),以便進行比較切端。
如果想按照其他標(biāo)準(zhǔ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 的值。