2011-09-30 72 views
0

好的,所以我有一个m数组(或者是一个在actionscript中的数组数组,因为它实际上没有m数组),并且每个数组中的每个数组都创建了一些对象在不同的时间。我想按照每个子阵列中索引为0的对象的“时间”参数值的降序对超级队列进行排序。SortOn对象的m数组

我已经试过

superarray.sortOn([0].time, Array.DESCENDING); 

superarray.sortOn("0.time", Array.DESCENDING); 

但这似乎并没有工作。有什么建议么?我会不得不写我自己的排序功能来做到这一点?如果是的话,最好的方法是什么?

回答

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); 
    }); 
+0

嘿,这工作。我不知道如何传递比较函数。我稍微改变了它以反映我的需求,但这是很好的建议。 – Cyborg771