You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

16 lines
361 B
JavaScript

"use strict";
const cartesianProduct = require("cartesian-product");
module.exports = function namedCartesianProduct(object) {
let keys = Object.keys(object);
let products = cartesianProduct(keys.map((key) => object[key]));
return products.map((values) => {
return Object.fromEntries(keys.map((key, i) => {
return [ key, values[i] ];
}));
});
};