import { cartesianProduct } from "https://deno.land/x/combinatorics@1.1.2/mod.ts";
Roughly equivalent to running nested for...of
loops using one of the inputs to
provide the element at each index for the yielded Array
.
import { assertEquals } from "https://deno.land/std/testing/asserts.ts";
import { cartesianProduct } from "https://deno.land/x/combinatorics/mod.ts";
const sequences = [...cartesianProduct([1, 2, 3], [4, 5, 6], [7, 8, 9])];
assertEquals(sequences, [
[1, 4, 7], [1, 4, 8], [1, 4, 9],
[1, 5, 7], [1, 5, 8], [1, 5, 9],
[1, 6, 7], [1, 6, 8], [1, 6, 9],
[2, 4, 7], [2, 4, 8], [2, 4, 9],
[2, 5, 7], [2, 5, 8], [2, 5, 9],
[2, 6, 7], [2, 6, 8], [2, 6, 9],
[3, 4, 7], [3, 4, 8], [3, 4, 9],
[3, 5, 7], [3, 5, 8], [3, 5, 9],
[3, 6, 7], [3, 6, 8], [3, 6, 9],
]);