好吧,所以我有一个m-array(或者在actionscript中的数组数组,因为它实际上没有m-arrays),并且superarray中的每个数组都有许多在不同时间创建的对象。我想按照每个子阵列中索引0处对象的“时间”参数值的降序对superarray进行排序。
我试过
superarray.sortOn([0].time, Array.DESCENDING);
和
superarray.sortOn("0.time", Array.DESCENDING);
但这似乎不起作用。有什么建议?我是否只需编写自己的排序函数来执行此操作?如果是这样,最好的方法是什么?
答案 0 :(得分:3)
尝试使用传递比较函数的Array.sort函数。像这样:
var superarray:Array = [
[{time:900}, {time:715}, {time:655}],
[{time:450}, {time:333}, {time:100}],
[{time:999}, {time:75}, {time:30}]
];
var sorted:Array = superarray.sort( function(A:Array,B:Array):int {
return ObjectUtil.numericCompare(A[0].time, B[0].time);
});