javascript sort()對數組中的元素進行排序


javascript sort()可以對數組中的元素進行排序,

語法格式:arrayObject.sort(sortby)

arrayObject是數組對象,sortby為可選項,用來確定元素順序的函數的名稱,如果這個參數被省略,那么元素將按照ASCII字符順序進行升序排列。

在沒有使用比較函數進行排序時,sort方法是按字符的ASCII值進行排序的,先從第一個字符比較,如果第一個字符相等,再比較第二個字符,以此類推。

對於數值型數據,如果按照字符比較,得到的結果可能並不是我們想要的,因此需要借助比較函數。比較函數有兩個參數,分別代表每次排序時的兩個數組項。sort()排序時每次比較兩個數組項都會執行這個參數,並把兩個比較的數組項做為參數傳遞給這個函數。當函數返回值大於0時就交換兩個數組的順序,否則就不交換,即函數返回值小於0,表示升序排列,函數返回值大於0,表示降序排列。

<!DOCTYPE html>
<html>
<head>
    <title>對數組中的元素進行排序</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript">
        var x = new Array(1,20,8,12,6,7);   //創建數組
        document.write("排序前數組:"+x.join(",")+"<p>");  //輸出數組元素
        x.sort();   //按字符升序排列數組
        document.write("沒有使用比較函數排序后數組:"+x.join(",")+"<p>");     //輸出排序后數組
        x.sort(asc);        //有比較函數的升序排列
        /*升序比較函數*/
        function asc(a,b){
            return a-b;
        }
        document.write("排序升序后數組:"+x.join(",")+"<p>");   //輸出排序后的數組
        x.sort(des);    //有比較函數的降序排列
        /*降序比較函數*/
        function des(a,b){
            return b-a;
        }
        document.write("排序降序后數組:"+x.join(",")); //輸出排序后數組
 </script>
</head>
<body>
</body>
</html>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM