Сортировка двумерного массива в AS3 - PullRequest
0 голосов
/ 13 ноября 2009

Итак, у меня есть двумерный массив идентификаторов и подсчета голосов.

Я хочу, чтобы три верхних элемента голосования отображались разными цветами, поэтому у меня есть второй массив - sortArray.

Затем, когда я опубликую результаты, я планирую использовать данные из массива сортировки, чтобы выяснить, какой цвет должны иметь данные voiceArray. Данные из voiceArray должны быть в правильном порядке по идентификатору.

ТАК, вот что я делаю:

sortArray = voteArray;
sortArray.sortOn("1",Array.NUMERIC);

Это приводит к неправильной сортировке данных в voiceArray. Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 13 ноября 2009
public function mySort(a:Array, b:Array):Number {
  if(a[1] <= b[1]) {
    return 1;
  }
  return -1;
}

sortArray.sort(mySort);
1 голос
/ 13 ноября 2009

, если вы говорите:

sortArray = voteArray;

Вы только назначаете ссылку на voiceArray для sortArray. Поэтому после этого оператора обе ваши переменные указывают на один и тот же фрагмент памяти.

Я немного удивлен, что у класса Array во флэш-памяти нет функции клонирования или конструктора копирования

способов копирования массива:

var sortArray:Array = voteArray.filter(function(){return true;});

var sortArray:Array = voteArray.slice(0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...