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

174
Visualizações
combine 2 matrices y reemplace la misma clave usando lodash

tengo esta matriz 2,

 const firstArray = [ { key: 'a', value: 'a' }, { key: 'b', value: 'b' }, { key: 'c', value: 'c' } ] const secondArray = [ { key: 'b', value: 'd' }, { key: 'c', value: 'e' } ]

quiero fusionar estas 2 matrices, y si se encuentra la misma clave en la segunda matriz, el valor de la segunda matriz reemplazará el valor de la primera matriz

la nueva matriz debería verse así

 const expectedArray = [ { key: 'a', value: 'a' }, { key: 'b', value: 'd' }, { key: 'c', value: 'e' } ]
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Como veo lodash en sus etiquetas, asumo que desea usarlo.

Puedes usar algo como esto:

 var merged = _(firstArray) .concat(secondArray) .groupBy("key") .map(_.spread(_.merge)) .value();

Básicamente, agrupa todos los objetos con la misma clave en una matriz con groupBy("key") , luego aplana cada matriz de valores fusionándolos y tomando el último con .map(_.spread(_.merge)) .

Sugiero comentar los me gusta finales y ver todos los pasos intermedios si quieres entender completamente el proceso, ¡es interesante!

 const firstArray = [{ key: 'a', value: 'a' }, { key: 'b', value: 'b' }, { key: 'c', value: 'c' } ] const secondArray = [{ key: 'b', value: 'd' }, { key: 'c', value: 'e' } ] var merged = _(firstArray) .concat(secondArray) .groupBy("key") .map(_.spread(_.merge)) .value(); console.log(merged);
 <script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>

about 4 years ago · Juan Pablo Isaza Relatório

0

La solución sin lodash es iterar a través de la segunda matriz y solo buscar coincidencias.

Si no hay ninguna coincidencia, empuje el elemento a la primera matriz.

Si hay una coincidencia, reemplace el elemento de la primera matriz con el de la segunda matriz.

 const mergedArray = [...firstArray] secondArray.forEach(newItem => { const matchIndex = mergedArray.findIndex(prevItem => prevItem.key === newItem.key) if (matchIndex === -1) { mergedArray.push(newItem) } else { mergedArray[matchIndex] = newItem } })
about 4 years ago · Juan Pablo Isaza Relatório

0

const mergedArray = [...secondArray, ...firstArray]; const lengthOfUniqueArray = new Set(mergedArray.map((item) => item.key)).size; const expectedArray = newArray.slice(0, lengthOfUniqueArray);

expectedArray será lo que quieras.

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