AS3 sortOn问题

时间:2014-04-17 17:11:19

标签: actionscript-3 sorting

正确的二级数组排序操作出现问题。

现在我有

sortOn(["score", "timeStamp"], [Array.DESCENDING | Array.NUMERIC, Array.NUMERIC]);

目标是首先对“得分”进行排序,然后如果项目具有相同的得分,则按日期或“时间戳”排序

除了按时间戳排序后,它才有效。

文档有些模糊,至少对我而言。任何人都可以提供正确的方法吗?

2 个答案:

答案 0 :(得分:1)

你必须一个接一个地做两种。我无法真正理解你需要如何对它们进行排序,但如果你想对得分降序排序,并且在timeStamp(升序)上,这对我有用:

var arr:Array = new Array();
arr.push({score: 11, timeStamp: 21});
arr.push({score: 12, timeStamp: 35});
arr.push({score: 10, timeStamp: 20});
arr.push({score: 11, timeStamp: 22});
arr.push({score: 12, timeStamp: 31});

arr.sortOn(["timeStamp"], [Array.NUMERIC]);
arr.sortOn(["score"], [Array.DESCENDING | Array.NUMERIC]);

for (var i:uint = 0; i < arr.length; i++) {
    trace (arr[i].score, arr[i].timeStamp);
}

如果你想要别的东西 - 你可以稍微调整一下,但这是如何工作的 - 一个接一个地分类:)

答案 1 :(得分:0)

由于 我也试过这个似乎工作。这样做有什么不妥吗?

sortOn(["score", "timeStamp"], [Array.DESCENDING | Array.NUMERIC,Array.DESCENDING| Array.NUMERIC]);