Alright, I know that there are a few posts about getting the product of an unknown amount arrays with unknown amount of elements -
JavaScript - Generating combinations from n arrays with m elements
Cartesian array based on array of objects in Javascript
To name a few - However, I have a need for a slight twist -
What I would like is a function that can output an Array of serialized objects instead of an Array of Arrays..
for example, if the input of the function were -
scenarioBuilder({ENV: ["QA","UAT"], HOST: ["APP1", "APP2", "APP3"], API: ["Example1", "Example2"]})
The output would be an array of serialized objects like this -
[{ENV: "QA", HOST: "APP1", API: "Example1"},
{ENV: "UAT", HOST: "APP1", API: "Example1"},
{ENV: "QA", HOST: "APP2", API: "Example1"},
{ENV: "UAT", HOST: "APP2", API: "Example1"},
{ENV: "QA", HOST: "APP3", API: "Example1"},
{ENV: "UAT", HOST: "APP3", API: "Example1"}]
etc. etc. etc.
Essentially taking the Array of ENV, HOSTS, AND API's - and making a serialized scenario builder.
I've tried a few cracks at adapting a few of the methods from the above links, but I have had no luck.
specifically -
function cartesian(...args) {
var r = [], max = args.length-1;
function helper(arr, i) {
for (var j=0, l=args[i].length; j<l; j++) {
var a = arr.slice(0); // clone arr
a.push(args[i][j]);
if (i==max)
r.push(a);
else
helper(a, i+1);
}
}
helper([], 0);
return r;
}
But Javascript isn't my main language and I honestly have no clue how to break apart the Arrays and reassemble the objects.
Can anyone take a shot at it?
Thank you as always.