Rate this script:  I Love it  /   I Hate it

Calculate all combinations (permutations)


Code


combine([1,2]) == [[1], [2], [1,2]];

var combine = function(a) {
  var fn = function(n, src, got, all) {
    if (n == 0) {
      if (got.length > 0) {
        all[all.length] = got;
      }
      return;
    }
    for (var j = 0; j < src.length; j++) {
      fn(n - 1, src.slice(j + 1), got.concat([src[j]]), all);
    }
    return;
  }
  var all = [];
  for (var i=0; i < a.length; i++) {
    fn(i, a, [], all);
  }
  all.push(a);
  return all;
}
 

 

 
Calculate all combinations (permutations) scripts | Calculate all combinations (permutations) snippet | Calculate all combinations (permutations) example | Calculate all combinations (permutations) tutorial | Calculate all combinations (permutations) code