PDA

Просмотр полной версии : Сортировка. В чем ошибка?


400kg
12.05.2008, 15:54
Ситуация такая. Турнирная таблица игроков. В итоге считаются победы и набранные очки в играх. В случае равного количества побед - выше становится тот у кого больше очков. Вот код.

var rec_array:Array = new Array();
rec_array.push( { wins: 12, points: 186} );
rec_array.push( { wins: 3, points: 71} );
rec_array.push( { wins: 2, points: 36} );
rec_array.push( { wins: 1, points: 30} );
rec_array.push( { wins: 0, points: 37} );
rec_array.push( { wins: 0, points: 20} );
rec_array.push( { wins: 0, points: 100} );
rec_array.push( { wins: 0, points: 5} );
rec_array.push( { wins: 3, points: 25} );


rec_array.sortOn(["wins", "points"], 18);
for (y=0; y<rec_array.length; y++) {
trace("wins: "+rec_array[y].wins+" points: "+rec_array[y].points);
}

В чем ошибка ? Почему в итоге какая-то странная сортировка. Вроде бы сделал все "по книжке".

Подскажите плиз... Очень нужно.

iNils
12.05.2008, 15:59
Что значит странная в вашем понимании и что должно быть?

400kg
12.05.2008, 16:08
Должна быть основная последовательность WINS. И только в случае равенства WINS должна происходить сортировка по POINTS. А сейчас сортируется просто по POINTS как я понял.

Вот так должно быть по задумке отсортировано:

wins: 12 points: 186
wins: 3 points: 71
wins: 3 points: 25
wins: 2 points: 36
wins: 1 points: 30
wins: 0 points: 37
wins: 0 points: 20
wins: 0 points: 10
wins: 0 points: 5

iNils
12.05.2008, 16:13
У меня так
wins: 12 points: 186
wins: 3 points: 71
wins: 2 points: 36
wins: 1 points: 30
wins: 0 points: 37
wins: 0 points: 20
wins: 0 points: 10
wins: 0 points: 5
У вас публикация под какую версию?

Надо использовать кнопку http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif, а не создавать несколько сообщений подряд.

400kg
12.05.2008, 16:18
Сорри. Случайно нажал. Под седьмую версию публикация.

А вот этот код какой результат дает у вас ?

var rec_array:Array = new Array();
rec_array.push( { wins: 12, points: 186} );
rec_array.push( { wins: 3, points: 71} );
rec_array.push( { wins: 2, points: 36} );
rec_array.push( { wins: 1, points: 30} );
rec_array.push( { wins: 0, points: 37} );
rec_array.push( { wins: 0, points: 20} );
rec_array.push( { wins: 0, points: 100} );
rec_array.push( { wins: 0, points: 5} );
rec_array.push( { wins: 3, points: 25} );


rec_array.sortOn(["wins", "points"], 18);
for (y=0; y<rec_array.length; y++) {
trace("wins: "+rec_array[y].wins+" points: "+rec_array[y].points);
}

iNils
12.05.2008, 16:24
Хелп:
The ability to use different options parameters on multiple sort fields was added in Flash Player 8.

400kg
12.05.2008, 16:27
Опа... Спасибо! =)