Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

156
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda