Получить все возможные комбинации в массиве
Нужно написать функцию getVarriants, которая принимает массив из чисел и возвращает массив массивов со всеми возможными комбинациями
Пример:
getVarriants([1,2]) // [[1,2], [2,1]]
getVarriants([1,2,3]) // [[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]
Ответы (1 шт):
Автор решения: Павел Ериков
→ Ссылка
Ну например можно вот так:
var permArr = [],
usedChars = [];
function getVariants(input) {
var i, ch;
for (i = 0; i < input.length; i++) {
ch = input.splice(i, 1)[0];
usedChars.push(ch);
if (input.length == 0) {
permArr.push(usedChars.slice());
}
getVariants(input);
input.splice(i, 0, ch);
usedChars.pop();
}
return permArr
};
document.write(JSON.stringify(getVariants([1, 2, 3])));
Еще кучу вариантов можете посмотреть тут