Показать сообщение отдельно
Старый 13.10.2014, 17:28
nubideus вне форума Посмотреть профиль Отправить личное сообщение для nubideus Найти все сообщения от nubideus
  № 4  
Ответить с цитированием
nubideus

Регистрация: Jan 2013
Сообщений: 322
Код AS3:
var arr:Array = [1, 4, 2, 3];
var result:Array = [];
for(var i:uint = 0; i < arr.length; i++){
  for(var j:uint = i + 1; j < arr.length; j++){
    result.push([arr[i], arr[j]]);
  }
}
 
trace(result.join(" | ")); // "1,4 | 1,2 | 1,3 | 4,2 | 4,3 | 2,3"
Цитата:
Что представляют собой элементы значения не имеет, а повторы не уместны.
то что тип элементов значения не имеет следует из того, что повторов в массиве нет.
если повторы будут - то для чисел алгоритм будет работать быстрее чем для объектов.

так же можно найти длину результата заранее.
Код AS3:
result.length === arr.length * (arr.length - 1) >>> 1;


Последний раз редактировалось nubideus; 13.10.2014 в 17:57.