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

155
Views
¿Es mejor empujar la matriz de un objeto a la matriz de un objeto en función de la misma identificación?

hola, quiero enviar una matriz de un objeto a una matriz de un objeto para que la nueva propiedad se envíe a la matriz de objetos en función del mismo _id, estos son los datos originales:

 const data =[ { foo:foo1, data:{ _id:"a1", man:2 } }, { foo:foo1, data:{ _id:"a1", man:2 } } ]

estos son los datos que quiero poner en mis datos originales

 const d = [{ _id:"a1", women:4, }]

Y la salida deseada es:

 const data =[ { foo:foo1, data:{ _id:"a1", man:2, women:4 } }, { foo:foo1, data:{ _id:"a1", man:2, women:4 } } ]

Creo que se puede hacer usando for loop y verificar si el _id es el mismo y empujarlo al objeto, pero ¿hay alguna forma mejor? o usando lodash? ¿alguna idea? gracias de antemano

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

¡Puedes probar esto!

 const d = [{ _id:"a1", women:4, } ] const data =[ { foo:"foo1", data:{ _id:"a1", man:2 } }, { foo:"foo1", data:{ _id:"a1", man:2 } } ] var arr = data.map(function(obj, i){ d.map(function(o,i){ if(obj.data._id == o._id) { obj.data.women = o.women; } }); return obj; }); console.log(arr);

about 4 years ago · Juan Pablo Isaza Report

0

Con las estructuras de datos que tiene, puede recorrer ambas y simplemente actualizar las entradas con la misma id . Dicho esto, esta es una solución de fuerza bruta con complejidad de tiempo O (n ^ 2). Esta solución también devuelve un nuevo objeto en lugar de mutar el original.

 // Existing entries const entries = [ { data: { id: 'a1', man: 2 } }, { data: { id: 'a1', man: 2 } }, ]; // Data with same id to update const updates = [ { id: 'a1', women: 4 }, ]; /** * Update properties for an existing entry given * a list of partially updated entries */ function updateEntries(entriesList, updatesList) { // Build up new array as to not mutate // the existing data structure const newEntries = []; for (const entry of entriesList) { for (const update of updatesList) { // Update when the ids match if (entry.data.id === update.id) { newEntries.push({ data: { ...entry.data, ...update } }); } else { newEntries.push(entry); } } } return newEntries; } const newEntries = updateEntries(entries, updates); // newEntries = [ // { // data: { // id: 'a1', // man: 2, // women: 4 // } // }, // { // data: { // id: 'a1', // man: 2, // women: 4 // } // }, // ];

Si cambia su estructura de datos para que entries sean un objeto con cada entry organizada por id , suponiendo que en realidad deberían ser únicas de todos modos, puede obtener O (n) según updates .

 // Entries by id const entries = { a1: { man: 2 }, a2: { man: 2 }, };
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!