-1

How to merge this 2 arrays by name though the whole name in arr1 has the name Ana Marie Cruz while the arr2 has the name Anna Marie . Can someone give me an idea. I have attempted it in es6.What can be the most efficient way to do it.

let arr1 = [{
  name: "Shaina",
  age: "27"
}, {
  name: "Ana Marie Cruz",
  "age": "35"
}];
let arr2 = [{
  name: "Ana Marie",
  status: "married"
  gender: Female
}];

I'm trying to get this output in javascript.

var arr3 = [{name: "Shaina", age: "27"},{name:"Ana Marie Cruz", age : "35",status:"married",gender:Female}];

2 Answers2

0

you can do something like this

let arr1 = [{
  name: "Shaina",
  age: "27"
}, {
  name: "Ana Marie Cruz",
  "age": "35"
}];
let arr2 = [{
  name: "Ana Marie",
  status: "married",
  gender: 'Female'
}];

let arr3 = arr1.map(a => {
 const founded = arr2.find(({name}) => a.name.includes(name))
 
 return {
   ...(founded || {}),
   ...a
 }
 
})
console.log(arr3)
R4ncid
  • 6,944
  • 1
  • 4
  • 18
0

const arr1 = [
  {
    name: "Shaina",
    age: "27",
  },
  {
    name: "Ana Marie Cruz",
    age: "35",
  },
];

const arr2 = [
  {
    name: "Ana Marie",
    status: "married",
    gender: "Female",
  },
];

const result = arr1.map((d) => {
  const data = arr2.find((a) => d.name.includes(a.name));
  if (!data) return d;
  return {
    ...d,
    ...data,
  };
});

console.log(result);
Rahul Sharma
  • 9,534
  • 1
  • 15
  • 37