Chr*_*ris 3 javascript arrays sorting algorithm actionscript-3
舞台上阵列中的每个项目,每个项目都有一个x/y位置.左上角位置的项目应为项目[0].X应该是主要的.

最初我的想法是:
var items = [m1, m2, m3, m4, m5, m6];
items.sort(sortMe);
function sortMe(a, b)
{
return (b.position[0] - a.position[0]) && (b.position[1] - a.position[1]);
}
Run Code Online (Sandbox Code Playgroud)
但这并没有产生正确的结果.
sort()应该返回一个0或负数/正数.
这取决于X优先顺序:
function sortByPosition(a, b){
if (a.x == b.x) return a.y - b.y;
return a.x - b.x;
}
Run Code Online (Sandbox Code Playgroud)
这具有Y优先权("自然"顺序):
function sortByPosition(a, b){
if (a.y == b.y) return a.x - b.x;
return a.y - b.y;
}
Run Code Online (Sandbox Code Playgroud)
这意味着你只需要更换你&&的||:
return a.x - b.x || a.y - b.y
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5083 次 |
| 最近记录: |