Home > database >  Object index inside for loop in JavaScript
Object index inside for loop in JavaScript

Time:02-28

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);
  • Related