0
嗨,大家好,我需要對arraycollection進行排序。問題是我的數組由兩個不同的數組組成,其中一個年齡段被稱爲「AGE」,另一個年齡段被稱爲「MYAGE」。使用來自2個不同字段的數值對arraycollection進行排序
現在我需要根據年齡對組合數組進行排序,但我得到了兩個不同名稱的字段。我可以通過數組並將所有「MYAGE」更改爲「AGE」,但是我想知道是否可以按照當前狀態對數組進行排序?
感謝提前
嗨,大家好,我需要對arraycollection進行排序。問題是我的數組由兩個不同的數組組成,其中一個年齡段被稱爲「AGE」,另一個年齡段被稱爲「MYAGE」。使用來自2個不同字段的數值對arraycollection進行排序
現在我需要根據年齡對組合數組進行排序,但我得到了兩個不同名稱的字段。我可以通過數組並將所有「MYAGE」更改爲「AGE」,但是我想知道是否可以按照當前狀態對數組進行排序?
感謝提前
假設你有一個名爲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();
如果「年齡」在不工作(我所看到的文檔狀態,它僅適用於動態對象屬性),那麼你還可以與測試。 hasOwnProperty()。例如:a.hasOwnProperty(「AGE」)。 http://adobe.ly/oVeR8m –