2

I need to join data from 2 array

example data:

const data1 = [
  {"firstName":"Donald"},
  {"firstName":"Mickey"}
]

const data2 = [
 {"lastName":"Duck"},
 {"lastName":"Mouse"}
]

the result i want is:

const final = [
 {"firstName":"Donald", "lastName":"Duck"},
 {"firstName":"Mickey", "lastName":"Mouse"}
]

how to do that?

0

3 Answers 3

3

const data1 = [
  {"firstName":"Donald"},
  {"firstName":"Mickey"}
]

const data2 = [
 {"lastName":"Duck"},
 {"lastName":"Mouse"}
]

const result = data1.map((obj, index) => ({ ...obj, ...data2[index] }));

console.log(result);

1
  • 2
    You could shortwrite the return object like this: (obj, index) => ({ ...obj, ...data[index] }) Commented Jul 30, 2020 at 6:38
1

You can also do with a for loop:

let finalRes = [];
const data1 = [{ firstName: "Donald" }, { firstName: "Mickey" }];
const data2 = [{ lastName: "Duck" }, { lastName: "Mouse" }];

for (var i = 0; i < data1.length; i++) {
  finalRes.push({ ...data1[i], ...data2[i] });
}
    
console.log(finalRes);

0

const data1 = [{
    "firstName": "Donald"
  },
  {
    "firstName": "Mickey"
  }
]

const data2 = [{
    "lastName": "Duck"
  },
  {
    "lastName": "Mouse"
  }
]
const result = [];
data1.forEach((aData, index) => {
  result.push({
    ...aData,
    ...(data2[index])
  })

})
console.log(result);

Not the answer you're looking for? Browse other questions tagged or ask your own question.