Obtenir les permutations d'une liste d'éléments avec JavaScript
Concept et utilisation
La fonction arrayPermutations() permet d'obtenir une liste des permutations d'une série d'éléments.
Fonction
arrayPermutations()Retourne les permutations d'une liste d'éléments.
- Syntaxe
arrayPermutations(elements);- Paramètre
elementsLe paramètre
elementsde la fonctionarrayPermutations()définit la liste des éléments pour lesquels obtenir les permutations.
Exemple d'obtention des permutations d'une liste d'éléments
var elements = ['a', 'b', 'c'];
arrayPermutations(elements);
// renvoie :
// [
// ['b', 'a', 'c']
// ['b', 'c', 'a']
// ['c', 'b', 'a']
// ['c', 'a', 'b']
// ['a', 'c', 'b']
// ['a', 'b', 'c']
// ]Code source de la fonction
function arrayPermutations(a) {
a.sort();
var r = [],
p = function(a, n) {
if (n === a.length-1) {
r.push(a.slice());
return;
}
var s = new Set();
for (var i = n, j = a.length; i < j; i++) {
if (s.has(a[i])) {
continue;
}
s.add(a[i]);
[a[n], a[i]] = [a[i], a[n]];
p(a, n+1);
[a[n], a[i]] = [a[i], a[n]];
}
};
p(a, 0);
return r;
}Dernière mise à jour le .
