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
elements

Le paramètre elements de la fonction arrayPermutations() 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) {
  var b = [],
  p = function p(a, n) {
    if ((a.length - n) <= 1) {
      b.push([].concat(a));
    }
    else {
      for (var i = 0, j = a.length-n; i < j; i++) {
        var t = a[n],
            l = a.length-1;
        for (var k = n; k < l; k++) {
          a[k] = a[k+1];
        }
        a[l] = t;
        p(a, n+1);
      }
    }
  };
  p(a, 0);
  return b;
}
^