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

150
Visualizações
Insertar valores en una matriz desde una matriz de objetos

Tengo una matriz de objetos de la siguiente manera. Básicamente, quiero recorrer los projects.current_result y obtener todos los valores.

 let data = [ { vertical_name: "CORE", projects: [ { name: "Alpha", id: 187, current_result: { success: 0, failure: 0, skip: 0, untested: 100 } } ] }, { vertical_name: "release", projects: [ { name: "Beta", id: 27, current_result: { success: 50, failure: 20, skip: 36, untested: 0 } }, { name: "Charlie", id: 47, current_result: { success: 37, failure: 25, skip: 40, untested: 0 } } ] } ]

por ejemplo, quiero obtener valores de success de cada uno de los proyectos y poner todos esos valores en una matriz. Entonces, en este caso, success= [0,50,37] De manera similar, quiero poner valores para failure, skip and untested

 failure=[0,20,25] skip=[0,36,40] untested=[100,0,0]

Intenté lograr eso con el siguiente código, pero de alguna manera no puedo obtener el resultado deseado. Cualquier consejo sobre cómo corregir este código por favor

 let alteredResponse = data.forEach(prj => { prj.reduce((result, { count }) => { result.success.push(count.success|| 0); result.failure.push(count.failure || 0); result.skip.push(count.skip || 0); result.untested.push(count.untested || 0); return result; }, { success: [], failure: [], skip: [], untested: [] }) });
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

 const data = [ { vertical_name: 'CORE', projects: [ { name: 'Alpha', id: 187, current_result: { success: 0, failure: 0, skip: 0, untested: 100 } } ] }, { vertical_name: 'release', projects: [ { name: 'Beta', id: 27, current_result: { success: 50, failure: 20, skip: 36, untested: 0 } }, { name: 'Charlie', id: 47, current_result: { success: 37, failure: 25, skip: 40, untested: 0 } } ] } ]; const result = { success: [], failure: [], skip: [], untested: [] }; data.forEach((prj) => { prj.projects.reduce((_, { current_result }) => { result.success.push(current_result.success || 0); result.failure.push(current_result.failure || 0); result.skip.push(current_result.skip || 0); result.untested.push(current_result.untested || 0); return result; }, result); }); console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

Puedes lograr esto con dos forEach

Lógica

  • Bucle a través de cada nodo en data
  • Recorra cada nodo en projects desde los nodos en data
  • Empuje los nodos success , fallidos, skip y failure untested del nodo del project al nodo de resultado respectivo.

violín de trabajo

 const data = [{"vertical_name":"CORE","projects":[{"name":"Alpha","id":187,"current_result":{"success":0,"failure":0,"skip":0,"untested":100}}]},{"vertical_name":"release","projects":[{"name":"Beta","id":27,"current_result":{"success":50,"failure":20,"skip":36,"untested":0}},{"name":"Charlie","id":47,"current_result":{"success":37,"failure":25,"skip":40,"untested":0}}]}]; const result = { success: [], failure: [], skip: [], untested: [], } const alteredResponse = data.forEach(prj => { prj.projects.forEach((project) => { result.success.push(project.current_result.success); result.failure.push(project.current_result.failure); result.skip.push(project.current_result.skip); result.untested.push(project.current_result.untested); }) }); console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

Podrías probar este enfoque

  • primer mapa para conseguir los projects
  • aplanar los projects
  • mapear los projects para obtener los current_results
  • reducir para combinar todos los resultados en un objeto final

 let data = [ { vertical_name: "CORE", projects: [ { name: "Alpha", id: 187, current_result: { success: 0, failure: 0, skip: 0, untested: 100, }, }, ], }, { vertical_name: "release", projects: [ { name: "Beta", id: 27, current_result: { success: 50, failure: 20, skip: 36, untested: 0, }, }, { name: "Charlie", id: 47, current_result: { success: 37, failure: 25, skip: 40, untested: 0, }, }, ], }, ] const res = data .map(({ projects }) => projects) .flat() .map(({ current_result }) => current_result) .reduce((acc, el) => { for (const [key, value] of Object.entries(el)) { if (!acc[key]) { acc[key] = [value] } else { acc[key].push(value) } } return acc }, {}) console.log(res)

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