AS3 числовой массив сортировки? - PullRequest
4 голосов
/ 09 июля 2011
var dataArray:Array = [ 5, 6, 3, 8, 10, 11, 32, 2 ];
var dataObjectArray:Array [ { "uid": 5 }, { "uid": 6 .... Similar to above ... } ];

У меня есть 2 вышеупомянутых массива в AS3. и я хочу отсортировать их численно (1 ~ X) по порядку [Пропуск тех, которые не существуют]. Каков наилучший и наиболее эффективный способ сделать это для dataArray / dataObjectArray.

Вы можете решить 1 или оба =)

Ответы [ 3 ]

14 голосов
/ 09 июля 2011

Вы пробовали:

dataArray.sort(  Array.NUMERIC );
dataObjectArray.sortOn( ["uid"], [Array.NUMERIC]); 
6 голосов
/ 09 июля 2011

Удивительно, но as3 имеет встроенные функции для этого.

 dataArray.sort(Array.NUMERIC);
 dataObjectArray.sortOn("uid", Array.NUMERIC);

Это элегантно дало бы желаемый эффект: по умолчанию используется возрастающий порядок. Документация по массиву охватывает дополнительные детали, например, по убыванию / etc ... Lol sortOn даже сортирует вложенные объекты / массив, если указаны значения полей.

0 голосов
/ 28 февраля 2019
dataArray.sort();

Автоматически распознает, сортируете ли вы числа или строки, и сортируете массив.Но потом я сделал что-то глупое.Мой массив содержит числа в виде строк, и тогда сортировка не работала хорошо, когда в строке было разное количество цифр.Таким образом, выигрышным решением является полный отличный ответ:

dataArray.sort(  Array.NUMERIC );
dataObjectArray.sortOn( ["uid"], [Array.NUMERIC]);

Если вы хотите перевернутый порядок (по убыванию, а не по возрастанию), то после сортировки вызов:

dataArray.reverse();

Приветствия!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...