Tengo dos matrices, y actualmente las estoy combinando en una matriz así:
const changeArr = selectedReasons.map((e, i) => e + changeComments[i]);Eso funciona, pero lo que idealmente me gustaría hacer es, en lugar de agruparlos en un elemento, crear una matriz de objetos, donde cada objeto tiene una propiedad que hace referencia a la primera matriz, y la segunda propiedad es el elemento de índice correspondiente de la segunda matriz.
Así que imagina que la primera matriz se ve así:
selectedReasons = [ "100A", "100B" ]Y el segundo se ve así:
changeComments = [ "Here is my clarifying comment for the first choice.", "This is a different comment pertaining to my second choice." ]Con lo que me gustaría terminar es esto:
changeArr = [ { reason: "100A", comment: "Here is my clarifying comment for the first choice." }, { reason: "100B", comment: "This is a different comment pertaining to my second choice." } ]¿Cómo puedo ajustar mi código actual que combina elementos en una matriz de objetos con dos propiedades para cada objeto, que coinciden según el índice de los elementos?
Puede recorrer desde 0 hasta el final de la matriz de razones y enviar nuevos objetos a una nueva matriz utilizando la razón y comentar en el índice i de sus respectivas otras matrices, así:
let changeArr = []; for (let i = 0; i < selectedReasons.length; i++) { changeArr.push({ reason: selectedReasons[i], comment: changeComments[i] }); } Esto significa que si la matriz de razones selectedReasons y la matriz de changeComments de cambio no tienen la misma longitud, es posible que tenga problemas
Simplemente necesita devolver un objeto
var selectedReasons = [ "100A", "100B" ] var changeComments = [ "Here is my clarifying comment for the first choice.", "This is a different comment pertaining to my second choice." ] var result = selectedReasons.map((reason, i) => ({ reason, change: changeComments[i] })) document.write(`<pre>${JSON.stringify(result, null, 2)}</pre>`)