2011-08-10 56 views
0

嗨,大家好,我需要對arraycollection進行排序。問題是我的數組由兩個不同的數組組成,其中一個年齡段被稱爲「AGE」,另一個年齡段被稱爲「MYAGE」。使用來自2個不同字段的數值對arraycollection進行排序

現在我需要根據年齡對組合數組進行排序,但我得到了兩個不同名稱的字段。我可以通過數組並將所有「MYAGE」更改爲「AGE」,但是我想知道是否可以按照當前狀態對數組進行排序?

感謝提前

回答

1

假設你有一個名爲myCollection一個ArrayCollection。希望下面將解決您的要求爲:

private function compareItems(a:Object, b:Object, fields:Array = null):int 
{ 
    var firstValue:Number = "AGE" in a ? a["AGE"] : a["MYAGE"]; 
    var secondValue:Number = "AGE" in b ? b["AGE"] : b["MYAGE"]; 
    if (firstValue == secondValue) 
     return 0; 
    return firstValue > secondValue ? 1 : -1; 
} 

… 

var sort:ISort = new Sort(); 
sort.compareFunction = compareItems; 
myCollection.sort = sort; 
myCollection.refresh(); 
+0

如果「年齡」在不工作(我所看到的文檔狀態,它僅適用於動態對象屬性),那麼你還可以與測試。 hasOwnProperty()。例如:a.hasOwnProperty(「AGE」)。 http://adobe.ly/oVeR8m –

相關問題