Obtenir les combinaisons d'une liste d'éléments avec JavaScript

Concept et utilisation

La fonction arrayCombinations() permet d'obtenir une liste de toutes les combinaisons d'une liste d'éléments.

Fonction

arrayCombinations()

Retourne une liste de combinaisons à partir des éléments d'une liste de référence.

Syntaxe
arrayCombinations(liste);
Paramètre
liste(Array)

Le paramètre liste de la fonction arrayCombinations() définit la liste des éléments à partir desquels obtenir les combinaisons.

Exemple d'obtention des combinaisons d'une liste d'éléments

var liste = ['a', 'b', 'c'];

arrayCombinations(liste);

// renvoie : [
//   ['a'],
//   ['a', 'b'],
//   ['a', 'b', 'c'],
//   ['a', 'c'],
//   ['b'],
//   ['b', 'c'],
//   ['c']
// ]

Code source de la fonction

function arrayCombinations(a) {
  var r = [],
    f = function (b, a) {
      for (var i = 0, j = a.length; i < j; i++) {
        var x = b.concat(a[i]);
        r.push(x);
        f(x, a.slice(i + 1));
      }
    };
  f([], a);
  return r;
}
^