const template = { example: { simple: ['Hey', 'Origami'], extra: ['Its me', 'Dotcom'] } }Quiero unir cada elemento de template.example.simple & template.example.extra juntos.
Entonces los resultados serían:
['Hey', 'Origami', 'Hey Its me', 'Hey Dotcom', 'Origami Its me', 'Origami Dotcom']
Para lograr eso, lo que estoy haciendo en este momento es:
const template = { example: { simple: ['Hey', 'Origami'], extra: ['Its me', 'Dotcom'] } } const example = template.example.simple; template.example.simple.forEach((s) => { let extra = s; template.example.extra.forEach((a) => { extra += ` ${a}`; example.push(extra); extra = s; }); }); console.log(example); //example = ['Hey', 'Origami', 'Hey Its me', 'Hey Dotcom', 'Origami Its me', 'Origami Dotcom']Entonces, mi pregunta es si hay un método más simple para lograr esto, y ¿cómo mejoraría esto?
Más simple es un término muy relativo. No llamaría a este método más simple/más fácil de leer, pero en aras de dar alternativas, este delineador debería funcionar. Utiliza el mapa para seleccionar tanto el valor original de simple como un mapa extra para juntar simple y extra (y el operador de propagación ... para aplanarlos)
const template = { example: { simple: ['Hey', 'Origami'], extra: ['Its me', 'Dotcom'] } }; const example = Array.prototype.concat(...template.example.simple.map(p=>[p,...template.example.extra.map(e=>p + ' ' + e)])); console.log(example);