I have the following problem using javascript (using node.js and mongoose):
I have 2 objects, the first object_1 = {"title": "Equipment 1", "description": "My equipment 1"} and the second object_2 = {"title": "Equipment 2", "description": "My gear 2"}.
The problem I'm having is that I'm trying to overwrite my second object with the information from the first, and I'm using the following code for this:
for (let i in object_1) {
object_2.i = object_1.i;
}
And the problem I see happening, is that the index variable "i" inside the loop is not being "attached" when I search for object_2.i and object_1.i.
I tested it outside the loop and my code works very well, I would like to know how I use this 'for' loop index in this case?
CodePudding user response:
The i inside the loop returns "object_index" as a string. What you're doing in this code is object_2."title" = object_1."title" which will fail because you can't access the key inside an object like this. You have to use it like object_1[i] = object_2[i] and it should work. One other way of handling this is object_1 = {...object_1, ...object_2} without having to do a for loop.
CodePudding user response:
The other answer is the real answer, but I also wanted to point out that another way to attain your desired functionality is to use Object.assign, which is supported by more browsers as compared to the spread operator (...):
Object.assign(object_1, object_2);
