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

217
Visualizações
Combinar elementos de matriz agrupados por propiedades en Javascript

Tengo la siguiente matriz de objetos javascript:

 [ { "firstName": "x", "lastName": "y", "age": 10}, { "firstName": "x", "lastName": "y", "height": 100}, { "firstName": "x", "lastName": "y", "weight": 50}, { "firstName": "a", "lastName": "b", "age": 11}, { "firstName": "a", "lastName": "b", "height": 110}, { "firstName": "a", "lastName": "b", "weight": 60}, { "firstName": "m", "lastName": "n", "age": 12}, { "firstName": "m", "lastName": "n", "height": 120}, { "firstName": "m", "lastName": "n", "weight": 70}]

¿Es posible agrupar por nombre y apellido de modo que incluya otras propiedades del objeto en la matriz?

Matriz esperada:

 [ { "firstName": "x", "lastName": "y", "age": 10, "height": 100, "weight": 50}, { "firstName": "a", "lastName": "b", "age": 11, "height": 110, "weight": 60}, { "firstName": "m", "lastName": "n", "age": 12, "height": 120, "weight": 70}]
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Concepto

Prepare una matriz de resultados. Iterar a través de todos los datos. Compruebe si el firstName y el lastName existen en la matriz de resultados. Si no, introdúzcalo en la matriz de resultados. En caso afirmativo, combine el objeto para obtener las propiedades que faltan.

Código

 const data =[ { "firstName": "x", "lastName": "y", "age": 10}, { "firstName": "x", "lastName": "y", "height": 100}, { "firstName": "x", "lastName": "y", "weight": 50}, { "firstName": "a", "lastName": "b", "age": 11}, { "firstName": "a", "lastName": "b", "height": 110}, { "firstName": "a", "lastName": "b", "weight": 60}, { "firstName": "m", "lastName": "n", "age": 12}, { "firstName": "m", "lastName": "n", "height": 120}, { "firstName": "m", "lastName": "n", "weight": 70}]; let result = []; let found; data.forEach(d => { found = false; result.forEach(r => { if (r.firstName === d.firstName && r.lastName === d.lastName){ Object.assign(r, d); found = true; } }); if (!found){ result.push(d); } }); console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

puedes hacer algo como esto

 const group = data => Object.values(data.reduce((res, {firstName, lastName, ...rest}) =>{ const key = JSON.stringify({firstName, lastName}) return { ...res, [key]: {firstName, lastName, ...(res[key] || {}), ...rest} } }, {})) const data = [ { "firstName": "x", "lastName": "y", "age": 10}, { "firstName": "x", "lastName": "y", "height": 100}, { "firstName": "x", "lastName": "y", "weight": 50}, { "firstName": "a", "lastName": "b", "age": 11}, { "firstName": "a", "lastName": "b", "height": 110}, { "firstName": "a", "lastName": "b", "weight": 60}, { "firstName": "m", "lastName": "n", "age": 12}, { "firstName": "m", "lastName": "n", "height": 120}, { "firstName": "m", "lastName": "n", "weight": 70}] console.log(group(data))

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