Permalänk

Sortera listor [AS3]

Hej,

Jag har två stycken listor, en som heter score och en som heter time. time[n] hör ihop med score[n] och nu vill jag sortera dessa listor, först efter score:int och sedan time:Number. Hur gör man detta på smidigaste vis?

Exempel:

var score:Array = [1,3,2,5,4]; var time:Array = [5.23, 6.23, 3.21, 9.54, 12.02]; ska bli: var score:Array = [5,4,3,2,1]; var time:Array = [9.54, 12.02, 6.23, 3.21, 5.23];

Permalänk
Medlem
Skrivet av EpicBlobfish:

Hej,

Jag har två stycken listor, en som heter score och en som heter time. time[n] hör ihop med score[n] och nu vill jag sortera dessa listor, först efter score:int och sedan time:Number. Hur gör man detta på smidigaste vis?

Exempel:

var score:Array = [1,3,2,5,4]; var time:Array = [5.23, 6.23, 3.21, 9.54, 12.02]; ska bli: var score:Array = [5,4,3,2,1]; var time:Array = [9.54, 12.02, 6.23, 3.21, 5.23];

Använd en array istället för två:

var scoreTime:Array = [{score: 1, time: 5.23}, {score: 3, time: 3.21}, {score: 2, time: 6.23}, {score: 5, time: 12.02}, {score: 4, time: 9.54}];

För att sortera kan du använda sortOn():

scoreTime.sortOn("score", Array.DESCENDING | Array.NUMERIC);

Det borde göra susen.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av Teknocide:

Använd en array istället för två:

var scoreTime:Array = [{score: 1, time: 5.23}, {score: 3, time: 3.21}, {score: 2, time: 6.23}, {score: 5, time: 12.02}, {score: 4, time: 9.54}];

För att sortera kan du använda sortOn():

scoreTime.sortOn("score").reverse();

Det borde göra susen.

Tack!

Permalänk
Medlem
Skrivet av EpicBlobfish:

Jag har gjort en liten uppdatering. Sortering i AS3 är konstigt och jag har inte jobbat med det innan.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av Teknocide:

Jag har gjort en liten uppdatering. Sortering i AS3 är konstigt och jag har inte jobbat med det innan.

Fungerade med det du skrev innan också

EDIT: såg inte att tiden vart tvärt om med den förra, den nya fungerade perfekt!