Skip to content

Instantly share code, notes, and snippets.

@miguelfrias
Forked from textarcana/array-permutation.js
Created January 16, 2014 20:20
Show Gist options
  • Save miguelfrias/8462677 to your computer and use it in GitHub Desktop.
Save miguelfrias/8462677 to your computer and use it in GitHub Desktop.
/*jslint sloppy:true, white:true, vars:true, plusplus:true */
var permutation = function (collection){
var current,
subarray,
result = [],
currentArray = [],
newResultArray = [];
if (collection.length){
current = collection.shift();
result = permutation(collection);
currentArray.push(current);
result.map(function(list) {
newResultArray.push(list.slice(0));
list.push(current);
});
result.push(currentArray);
result = result.concat(newResultArray);
}
return result;
};
console.log(permutation(['a','b','c','d'])
.join('\n'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment