數組排序方法介紹_Flash教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:運用for循環來對多個mc進行檢測
      然后復制以下代碼到第一楨,出效果。_root.createEmptyMovieClip(m,0);with(m){beginFill(0xff0000);moveTo(50,0);for(i=Math.PI/180;i=Math.PI*2

      數組排序
      sort
      sort方法把數組元素按一定的順序重新排列,語法格式如下:
      myArray.sort([comparefunction])
      comparefunction是可選參數,假如不選用該參數,數組元素按從小到大的順序排列。
      例如: var array=new Array("China","Japan","Korea","Canada");
      trace(array.join());
      array.sort();
      trace(array.join());
      你可以作一下。復制代碼然后粘貼過去,運行,就可以看到效果的。
      輸出結果為China,Japan,Korea,Canada
      Canada,China,Japan,Korea
      comparefunction參數是一個用于決定排列順序的函數。該函數需要傳遞兩個參數A和B,當調用該函數的對數組進行排序的時候,就把數組中相鄰的兩個元素值作為參數傳遞給函數,然后在函數種對這兩個元素進行比較。最后根據函數的返回值確定排列的順序。規則如下:
      返回-1:A派在B前面。
      返回0:位置不便。
      返回1:A在B后面。
      下面給出一個例子來,在該例子種創建了一個數組,該數組原是的順序是從小到大排列,調用排序函數后,改為從大到小排列。
      var array=new Array(1,2,3,4,5);
      trace(arrat.join());
      //調用排序函數排列
      array.sort(order);
      trace(array.join());



      //定義排序函數,要求降序排列
      function order(a,b){
      if(a>b){
      return -1;//返回-1,要求把a排在b的前面
      }else if(a<b){
      return 1;//返回1,把a排在b的后面
      }else{
      return 0;//返回0,保持不變
      }
      }


      輸出結果為1,2,3,4,5
      5,4,3,2,1
      這只是簡單的一些排序,假如需要根據數組元素的一部分進行排序,就要結合使用字符對象的方法split分割字符串,然后取其中的某個部分進行排序。
      例如下面的例子。要對幾個人的工資進行排序,數據按姓名:工資形式記錄。
      代碼如下:
      gongzi=new Array("里根:3500","布什:3200","克林頓:8888","老不是:1500");
      trace("沒有排序的結果:");
      trace(gongzi.join()); trace("按照默認的方式排序的結果");
      gongzi.sort();
      trace(gongzi.join());

      trace("按從高到低排序的結果:");
      gongzi.sort(order);
      trace(gongzi.join());

      function order(a,b){
      var gongzi1=a.split(":")[1];
      var gongzi2=b.split(":")[1];
      if(gongzi1>gongzi2){
      return -1;
      }else if(gongzi1<gongzi2){
      return 1;
      }else{
      return 0;
      }
      }


      大家可以看一下結果。看看前后有什么差別。
      sortOn
      sortOn方法按數組中某個字段對數組元素進行排序。語法格式如下:
      array.sortOn(fieldName)
      fieldName參數是用作排序值的數組元素字段名。假如沒有傳遞fieldName參數,則排序操作將失敗。
      假如傳遞了多個fieldName參數,則第一個字段將被轉換為字符串值,而其余參數將被忽略。假如被比較的數組元素不包含fieldName參數中制定的字段,則默認按不制定比較函數的sort方法排序。
      下面給出一個簡單的例子,并按字段city排序:
      var array=new Array();
      array.push({name:"bob",city:"omaha",zip:68144});
      array.push({name:"greg",city:"kansas city",zip:72345});
      array.push({name:"chris",city:"burlingame",zip:94010});
      array.sortOn("city");
      排序后結果如下:
      array[0]=name:"chris",city:"burlingame",zip:94010
      array[1]=name:"greg",city:"kansas city",zip:72345
      array[2]=name:"bob",city:"omaha",zip:68144

      分享:相冊類
      PhotoAlbum構造函數:創建相冊:(1)用戶指定一個位置用來存放照片。(2)用戶指定照片URL的清單。(3)用戶發出“創建相冊”的命令,提供位置和清單。(4)創建

      來源:設計前沿網上收集//所屬分類:Flash教程/更新時間:2008-03-05
      相關Flash教程