Quebra-cabeça
Esgotar o arranjo de cada elemento em uma matriz
Estratégia
Reduza e curar, recorrente
Solução JavaScript
A cópia do código é a seguinte:
/**
* Criado por Chao em 23/12/14.
*/
função getPermuation (arr) {
if (arr.Length == 1) {
retornar [arr];
}
var permutation = [];
for (var i = 0; i <arn.length; i ++) {
var FirstEle = arr [i];
var ArrClone = arr.slice (0);
arrclone.splice (i, 1);
VAR ChildperMuation = getPermuation (ARCLONE);
for (var j = 0; j <childpermuation.length; j ++) {
ChildperMuation [J] .Unshift (FirstEle);
}
Permutação = Permutação.Concat (Childpermuation);
}
permutação de retorno;
}
var permutation = getPermuation (['a', 'b', 'c']);
console.dir (permutação);
resultado
A cópia do código é a seguinte:
[['a', 'b', 'c'],
['a', 'c', 'b'],
['b', 'a', 'c'],
['b', 'c', 'a'],
[ 'táxi' ],
['c', 'b', 'a']]