正确的二级数组排序操作出现问题。
现在我有
sortOn(["score", "timeStamp"], [Array.DESCENDING | Array.NUMERIC, Array.NUMERIC]);
目标是首先对“得分”进行排序,然后如果项目具有相同的得分,则按日期或“时间戳”排序
除了按时间戳排序后,它才有效。
文档有些模糊,至少对我而言。任何人都可以提供正确的方法吗?
答案 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]);