Dado este objeto fuente:
const src = { a: [1, 2, 3]} }Quiero transformarlo en una matriz de objetos que representan todas las combinaciones (3):
[{a: 1}, {a: 2}, {a: 3}]El código que tengo actualmente funciona, pero se siente poco elegante:
const arrPairs = []; Object.keys(src).map((el) => { src[el].forEach(element => { arrPairs.push({[el]: element}); }); });Tengo la sensación de que alguna combinación de mapa/reducción haría esto mucho más limpio, simplemente no puedo entenderlo.
Puede iterar sobre las entradas con .flatMap y asignar cada valor a su objeto asociado.
const src = { a: [1, 2, 3], b: [4, 5, 6, 7], c: [8, 9, 10, 11, 12] }; const result = Object.entries(src) .flatMap(([key, arr]) => arr.map(val => ({[key]: val}))); console.log(result);