Skip to content

Instantly share code, notes, and snippets.

@kpman
Forked from cybercase/product.js
Created August 28, 2016 05:09
Show Gist options
  • Save kpman/9981f19fea2670b9d60057ce9debdfff to your computer and use it in GitHub Desktop.
Save kpman/9981f19fea2670b9d60057ce9debdfff to your computer and use it in GitHub Desktop.
Python-like itertools.product function in javascript
function product() {
var args = Array.prototype.slice.call(arguments); // makes array from arguments
return args.reduce(function tl (accumulator, value) {
var tmp = [];
accumulator.forEach(function (a0) {
value.forEach(function (a1) {
tmp.push(a0.concat(a1));
});
});
return tmp;
}, [[]]);
}
console.log(product([1], [2, 3], ['a', 'b']));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment