Tengo 2 objetos como este
{ "2-14": "text-body", "3-28": "h1", "3-30": "h2", "3-36": "color-primary", "3-38": "color-secondary", "3-40": "color-black-100", "3-43": "color-black-50" }y
{ "3-36": "#4992FF", "3-38": "#49DEFF", "3-40": "#000000", "3-43": "#808080" }Necesito fusionar estos dos como a continuación
{ "color-primary": "#4992FF", "color-secondary": "#49DEFF", "color-black-100": "#000000", "color-black-50": "#808080", }Básicamente, el valor del primer objeto será clave y el valor del segundo objeto se convertirá en el valor del nuevo objeto. Necesito fusionar donde coincide la clave. Por favor ayuda.
Intenté de esta manera fusionar ambos. Pero no puede obtener un nuevo objeto según sea necesario.
const newArray = {}; for (const key of Object.getOwnPropertyNames(array1)) { newArray[key] = array2[key]; }esto me da
{ "3-36": "color-primary", "3-38": "color-secondary", "3-40": "color-black-100", "3-43": "color-black-50" }¿Algo como esto?
const names = { "2-14": "text-body", "3-28": "h1", "3-30": "h2", "3-36": "color-primary", "3-38": "color-secondary", "3-40": "color-black-100", "3-43": "color-black-50" } const colors = { "3-36": "#4992FF", "3-38": "#49DEFF", "3-40": "#000000", "3-43": "#808080" } const result = {}; Object.entries(colors).forEach(color => { const [key, value] = color; if(key in names) { result[names[key]] = value; } }) /* { "color-primary": "#4992FF", "color-secondary": "#49DEFF", "color-black-100": "#000000", "color-black-50": "#808080", } */Primero una breve observación: aquí no se trata de matrices, sino de objetos.
Aquí hay una solución bastante básica que debería darle lo que está buscando:
const obj1 = { "2-14": "text-body", "3-28": "h1", "3-30": "h2", "3-36": "color-primary", "3-38": "color-secondary", "3-40": "color-black-100", "3-43": "color-black-50" }; const obj2 = { "3-36": "#4992FF", "3-38": "#49DEFF", "3-40": "#000000", "3-43": "#808080" }; const result = { }; Object.keys(obj1).forEach(key => { if (obj2[key]) { result[obj1[key]] = obj2[key]; } });El resultado será:
{ "color-primary": "#4992FF", "color-secondary": "#49DEFF", "color-black-100": "#000000", "color-black-50": "#808080" }este es mi intento;
const obj1 = { "2-14": "text-body", "3-28": "h1", "3-30": "h2", "3-36": "color-primary", "3-38": "color-secondary", "3-40": "color-black-100", "3-43": "color-black-50" } const obj2= { "3-36": "#4992FF", "3-38": "#49DEFF", "3-40": "#000000", "3-43": "#808080" } const objFinal = {}; Object.keys(obj1).forEach(k => { if (obj2[k]){ objFinal[obj1[k]]=obj2[k]; } }); console.log(objFinal);