Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

221
Views
¿Cómo fusionar dos matrices de objetos en javascript?

aquí hay un ejemplo de muestra donde hay dos matrices y tenemos un merge() al que pasamos las matrices. el merge() debería devolver la matriz fusionada de modo que debería fusionar los objetos que tienen el mismo nombre.

 let arr1 = [ { name: "Person1", age: 20 }, { name: "Person2", age: 30 } ] let arr2 = [ { name: "Person1", email: "person1@mail.com" }, { name: "Person3", age: 25 } ] arr3 = merge(arr1, arr2) output : arr3 should be : [ { name: "Person1", age: 20, email: "person1@mail.com" }, { name: "Person2", age: 30 }, { name: "Person3", age: 25 } ]
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Puede tomar un objeto como tabla hash para realizar un seguimiento de los objetos combinados con el mismo name y devolver solo los valores de la tabla hash.

 const merge = (...arrays) => { const merged = {}; arrays.forEach(data => data.forEach(o => Object.assign(merged[o.name] ??= {}, o)) ); return Object.values(merged); }, array1 = [{ name: "Person1", age: 20 }, { name: "Person2", age: 30 }], array2 = [{name: "Person1", email: "person1@mail.com" }, { name: "Person3", age: 25 }], result = merge(array1, array2); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Report

0

Puedes usar lodash para eso

 let arr1 = [ { name: "Person1", age: 20 }, { name: "Person2", age: 30 } ] let arr2 = [ { name: "Person1", email: "person1@mail.com" }, { name: "Person3", age: 25 } ] arr3 = _.merge(_.keyBy(arr1, 'name'), _.keyBy(arr2, 'name')); console.log(arr3)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

about 4 years ago · Juan Pablo Isaza Report

0

La parte del map cubre todos los elementos de arr1, por lo que puede agregarlo tal cual o fusionarlo con los de arr1 y arr2. Luego necesitas un pase final para agregar los que están en arr2 pero no en arr1

 let arr1 = [ { name: "Person1", age: 20 }, { name: "Person2", age: 30 } ] let arr2 = [ { name: "Person1", email: "person1@mail.com" }, { name: "Person3", age: 25 } ] const merge = (a1,a2) => { return a1.map( (x) => { const y = a2.find( item => x.name === item.name); if (y) { return Object.assign({},x,y); } else return x }).concat(a2.filter(item => a1.every( x => x.name !== item.name))); } arr3 = merge(arr1, arr2) console.log(arr3)

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!