Javascript數組 sort方法的分析

來源:互聯網
上載者:User
javascript 中 Array.sort()方法是用來對數組項進行排序的 ,預設情況下是進行升序排列,執行個體代碼如下:

以下是引用片段:
      var arrA = [6,2,4,3,5,1];  
      arrA.sort();  
      document.writeln(arrA); 
  //結果是:1,2,3,4,5,6

  sort() 方法可以接受一個 方法為參數 ,這個方法有兩個參數。分別代表每次排序比較時的兩個數組項。sort()排序時每次比較兩個數組項都回執行這個參數,並把兩個比較的數組項作為參數傳遞給這個函數。當函數傳回值為1的時候就交換兩個數組項的順序,否則就不交換。

  執行個體如下:

以下是引用片段:
var arrA = [6,2,4,3,5,1]; 
    /**//*arrA.sort(); 
    document.writeln(arrA); 
    */ 
    function desc(x,y) 
    ...{ 
        if (x > y)   
            return -1; 
        if (x < y)           
            return 1; 
    } 
    function asc(x,y) 
    ...{ 
        if (x > y)   
            return 1; 
        if (x < y)           
            return -1; 
    } 
    arrA.sort(desc);    // sort by desc 
    document.writeln(arrA); 
    document.writeln("<br>"); 
    arrA.sort(asc);    //sort by asc 
    document.writeln(arrA); 

//輸出結果:
6,5,4,3,2,1 
1,2,3,4,5,6 

      另外,可以直接把一個無名函數直接放到sort()方法的調用中。如下的例子是將奇數排在前面,偶數排在後面,例子如下:

以下是引用片段:
        var arrA = [6,2,4,3,5,1]; 
        arrA.sort( function(x, y) ...{ 
            if (x % 2 ==0)   
                return 11; 
            if (x % 2 !=0)         
                return -1; 
            } 
        ); 
       document.writeln(arrA); 

//輸出:1,5,3,4,6,2 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.