2012-03-25 52 views
0

我有這樣的代碼:排序陣列AS3 - 第2部分

var a:Array = [ "Ramsey", "Tusey", "Iuser","Sephora",'user', 'reseo', 'nesey', 'sela'] 

a.sort(sortF) 

如何將sortF(排序函數)來排序爲在其指數0「s」或「S」字(帶至前),然後再用新的數組排列再次排序(所有數組包括索引0中沒有「S」或「S」的單詞)字母數字不區分大小寫,但保留其索引中具有「s」的單詞在前面0,但以字母數字順序。

謝謝。

回答

1
var sthis:Array = [ "Ramsey", "Tusey", "Iuser","Sephora",'user', 'reseo', 'nesey', 'sela']; 

function sortfor(sa:Array,s:String):Array{ 
     s=s.toLowerCase(); 
     var firstpart:Array = new Array(); 
     var secondpart:Array = new Array(); 
     for each (var el in sa) { 
      if(el.toLowerCase().indexOf(s)==0){ 
       firstpart.push(el); 
      }else{ 
       secondpart.push(el); 
      } 
     } 
     firstpart.sort(); 
     return firstpart.concat(secondpart); 
} 

trace(sortfor(sthis,"se"));