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

181
Visualizações
Combinar elementos en json y calcular

Tengo 1 tabla de empleados, error de empleado después de consultar y agregar a la matriz js de esta manera:

 [ { id: 01, name: a, error: "late", counterorr: 3 }, { id:01, name: a, error: "forgot homework", counterorr:2 }, { id: 02, name: b, error: "late", counterorr:2 } ]

No soy muy bueno con json y su manejo, así que no entiendo cómo almacenarlo mejor. Lo que quiero mostrar en la pantalla:

 {id:01, name: a,error:[{nameErorr: late,counterorr:3}, {nameErorr:forgot homework,counterorr:3 }], id: 02, name: b, error:[{nameErorr:"late",counterorr:2}]}

No puedo encontrar una mejor manera de almacenarlo, si es así por favor ayúdame, gracias

Lo describiré de manera más simple que esto.

 user=[{ id: 01, have: orange number: 1 },{ id: 01, have: banana number: 2 },{ id: 02, have: orange number: 1 }]

quiero convertir esa matriz para que me guste esto

 user=[{ id: 01, have: [{name: orange, number: 1}, {name: banana, number: 2}] },{ id: 02, have: [{name: orange, number: 1}] }]

¿Es esto posible usando lodash _groupby?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

intente usar una matriz para la tabla de empleados y la propiedad de errores

 [ { id: 01, name: a, errors: [ { nameErorr: late, counterorr: 3 }, { nameErorr: forgot, homework, counterorr: 3 }, ], }, { id: 02, name: b, errors: [{ nameErorr: "late", counterorr: 2 }] }, ];
about 4 years ago · Santiago Trujillo Relatório

0

Debe procesar las matrices en función del contenido. Vea si el elemento ya existe en la matriz procesada, si es así, modifíquelo. Si no, agregue una nueva entrada.

.reduce sería útil en este caso.

Para la primera mesa.

 const employeeError = [ { id: 01, name: "a", error: "late", counterorr: 3 }, { id: 01, name: "a", error: "forgot homework", counterorr: 2 }, { id: 02, name: "b", error: "late", counterorr: 2 } ] const processedEmployeeError = employeeError.reduce((acc, cur) => { const existingEployee = acc.find(emp => emp.id === cur.id); if(existingEployee) { existingEployee.error.push({nameError: cur.error, counterorr: cur.counterorr}) } else { acc.push({ id: cur.id, name: cur.name, error: [{ nameError: cur.error, counterror: cur.counterorr }] }); } return acc; },[]); console.log(processedEmployeeError); /* [{ "id": 1, "name": "a", "error": [{ "nameError": "late", "counterror": 3 }, { "nameError": "forgot homework", "counterorr": 2 }] }, { "id": 2, "name": "b", "error": [{ "nameError": "late", "counterror": 2 }] }] */

Del mismo modo, para la tabla de otros empleados.

 const user = [{ id: 01, have: 'orange', number: 1 }, { id: 01, have: 'banana', number: 2 }, { id: 02, have: 'orange', number: 1 }]; const processedUser = user.reduce((acc, cur) => { const existingUser = acc.find(u => u.id === cur.id); if(existingUser) { const existingFruits = existingUser.have.find(f => f.name === cur.have); if(existingFruits) { existingFruits.number += cur.number; } } else { acc.push({ id: cur.id, have: [{ name: cur.have, number: cur.number }] }); } return acc; }, []); console.log(processedUser);
about 4 years ago · Santiago Trujillo 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