Tengo el siguiente problema usando javascript (usando node.js y mongoose): tengo 2 objetos, el primero object_1 = {"title": "Equipment 1", "description": "My equipment 1"} y el segundo object_2 = {"title": "Equipment 2", "description": "My gear 2"} . El problema que tengo es que estoy tratando de sobrescribir mi segundo objeto con la información del primero, y estoy usando el siguiente código para esto:
for (let i in object_1) { object_2.i = object_1.i; } Y el problema que veo que sucede es que la variable de índice "i" dentro del ciclo no se "adjunta" cuando busco object_2.i y object_1.i .
Lo probé fuera del bucle y mi código funciona muy bien, me gustaría saber cómo uso este índice de bucle 'for' en este caso.
La i dentro del bucle devuelve "object_index" como una cadena. Lo que está haciendo en este código es object_2."title" = object_1."title" que fallará porque no puede acceder a la clave dentro de un objeto como este. Tienes que usarlo como object_1[i] = object_2[i] y debería funcionar. Otra forma de manejar esto es object_1 = {...object_1, ...object_2} sin tener que hacer un bucle for.
La otra respuesta es la respuesta real, pero también quería señalar que otra forma de lograr la funcionalidad deseada es usar Object.assign , que es compatible con más navegadores en comparación con el operador de propagación ( ... ):
Object.assign(object_1, object_2);