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
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] ];
|
|
}));
|
|
});
|
|
};
|