Hay dos matrices como la siguiente.
const arrayA = { 0: { id: XXXXXXX, name: "test" }, 1: { id: YYYYYYY, name: "example" } } const arrayB = { 0: { id: XXXXXXX, category: "sea", } 1: { id: YYYYYYY, category: "mountain" } }Me gustaría combinar estas dos matrices en una sola por cada identificación como la siguiente:
array C = { 0: { id: XXXXXXX, name: "test", category: "sea", }, 1: { id: YYYYYYY, name: "example", category: "mountain" } }¿Cuál es la forma más inteligente de hacer esto?
En realidad, no hay arreglos sino objetos que tienen claves como índices. Puede usar Object.keys para la iteración y fusionarlos por claves a través de objetos.
const arrayA = { "0": { id: 0, name: "test" }, "1": { id: 1, name: "example" } } const arrayB = { "0": { id: 0, category: "sea", }, "1": { id: 1, category: "mountain" } } const arrayC = {} for(const key of Object.keys(arrayA)) { arrayC[key] = { ...arrayA[key], ...arrayB[key], } } console.log(arrayC) También puede usar reduce en lugar de una iteración habitual
const arrayA = { "0": { id: 0, name: "test" }, "1": { id: 1, name: "example" } } const arrayB = { "0": { id: 0, category: "sea", }, "1": { id: 1, category: "mountain" } } const arrayC = Object.keys(arrayA).reduce((result, key) => ({ ...result, [key]: { ...arrayA[key], ...arrayB[key] } }), {}) console.log(arrayC)