С учетом этого ввода [3,1,2]
Я хочу получить этот вывод [ [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 2, 2 ], [ 2, 3 ], [ 3, 3 ] ]
Это уникальные пары ([1,2] == [2,1]
)
В настоящее время я сделал это
const arr = [3,1,2];
const pairBuilder = (left, index, collection) =>
collection.slice(index).map(right => [left, right]);
const pairs = arr.sort().flatMap(pairBuilder);
console.log(pairs)
Этот код функционален, но мне интересно, нет ли лучшего способа (с точки зрения производительности) добиться этого? Я хотя и использовал lodash для улучшения сортировки / отображения (с chain
), но мой вопрос больше об улучшении алгоритма.