
Код 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;