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

329
Visualizações
¿Cómo transformar correctamente los datos para un gráfico de pila chartJS (transformación de datos)?

Hay datos que vienen del servidor.

 const groupedChartData = [ { duration: '00:00:10', stats: [ {color: 'red', reason: 'yes', value: 11}, {color: 'green', reason: 'no', value: 33}, ] }, { duration: '00:01:00', stats: [ {color: 'black', reason: 'call back', value: 32}, {color: 'green', reason: 'no', value: 77}, ] }, { duration: '00:10:00', stats: [ {color: 'red', reason: 'yes', value: 14}, ] } ]

Según los datos del servidor, debe generar el siguiente objeto para mostrar correctamente los datos en el gráfico, es decir, cada primer valor del objeto de estadísticas en groupedChartData debe corresponder
al primero en el siguiente objeto, el segundo al segundo, y

resultado esperado

 let result = [ { data: [11, 32, 14], backgroundColor: ['red', 'black', 'red'] }, { data: [33,77], backgroundColor: ['green', 'green'] } ]

Esta transformación me es necesaria para formar un gráfico de este tipo en chartJS. ¿Quizás estoy haciendo algo mal y no se necesita una transformación tan compleja? En cualquier caso, la esencia de la pregunta es cómo traer 1 estructura que recibo del servidor a la que describí en el resultado esperado.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Espero que el código comentado a continuación te ayude:

 const result = [] groupedChartData.forEach(el=>{ el.stats.forEach((el, ind)=>{ //checking if position is null if(result[ind] == null){ result[ind] = {data:[], backgroundColor: []} } //pushing new values to the new array result[ind].data.push(el.value) result[ind].backgroundColor.push(el.color) }) }) console.log(result)
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