Skip to content

cartesianProduct

Subhajit Sahu edited this page May 17, 2020 · 15 revisions

Lists cartesian product of iterables. 🏃 📼 📦 🌔 📒

Similar: [cartesianProduct], [zip].

iterable.cartesianProduct(xs, [fn]);
// xs: iterables
// fn: map function (vs, i, xs)
const iterable = require('extra-iterable');

var x = [1, 2, 3];
var y = [10, 20, 30];
[...iterable.cartesianProduct([x, y])];
// [
//   [ 1, 10 ], [ 1, 20 ],
//   [ 1, 30 ], [ 2, 10 ],
//   [ 2, 20 ], [ 2, 30 ],
//   [ 3, 10 ], [ 3, 20 ],
//   [ 3, 30 ]
// ]

[...iterable.cartesianProduct([x, y], ([a, b]) => a + b)];
// [
//   11, 21, 31, 12, 22,
//   32, 13, 23, 33
// ]

references

Clone this wiki locally