I have array: [{key: 1, value: 1}, {key: 2, value:2}, {key: 3, value: 3}]
another array: [[{key: 1, value: 12}, {key: 1, value: 13}], [{key: 2, value: 21}], [{key: 4, value:4}, {key: 5, value: 5}]]
I want to generate resulting array as:
[
[{key: 1, value: 1}, {key: 2, value:2}, {key: 3, value: 3}, {key: 4, value:4}, {key: 5, value: 5}],
[{key: 1, value: 12}, {key: 2, value:2}, {key: 3, value: 3}, {key: 4, value:4}, {key: 5, value: 5}],
[{key: 1, value: 13}, {key: 2, value:2}, {key: 3, value: 3}, {key: 4, value:4}, {key: 5, value: 5}],
[{key: 1, value: 1}, {key: 2, value:21}, {key: 3, value: 3}, {key: 4, value:4}, {key: 5, value: 5}],
[{key: 1, value: 12}, {key: 2, value:21}, {key: 3, value: 3}, {key: 4, value:4}, {key: 5, value: 5}],
[{key: 1, value: 13}, {key: 2, value:21}, {key: 3, value: 3}, {key: 4, value:4}, {key: 5, value: 5}]
]
I am able to generate combinations of array2 using reduce + concat.
const array2 = [[{key: 1, value: 12}, {key: 1, value: 13}], [{key: 2, value: 21}], [{key: 4, value:4}], [{key: 5, value: 5}]];
const combinations = array2.reduce((accumulator, current) =>
accumulator.reduce((objAccumulator, currentObj) =>
objAccumulator.concat(
current.map(obj => [].concat(currentObj, obj))), []));
console.log(combinations);
but i am not able to find a good/optimized solution to arrive at the final result. Any help would be appreciated.