Skip to content

Instantly share code, notes, and snippets.

@textarcana
Last active May 20, 2020 12:52
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save textarcana/5737478 to your computer and use it in GitHub Desktop.
Save textarcana/5737478 to your computer and use it in GitHub Desktop.
Array permutation
/*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'));
@md2perpe
Copy link

md2perpe commented Jan 1, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment