Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

271
Vistas
¿Cómo calcula el promedio de los valores JSON e itera esta x cantidad de veces con Javascript?

Tengo un conjunto de datos JSON que se ve así:

 { name: "Evelyn", assignment: "SCRUM", difficulty: 3, fun: 4 }

Etc.

Estoy tratando de calcular el promedio de los valores de dificultad y diversión para cada tarea. Debido a que tengo 10 conjuntos/individuos con 56 tareas, mi idea es primero filtrar las tareas que deberían producir 56 conjuntos de tareas con 10 valores para cada diversión y dificultad y luego calcular el promedio para cada una.

Tengo dificultades para poner en práctica este plan porque no sé cómo hacer este nuevo conjunto/matriz de datos JSON decentemente. Estoy pensando en mapear, reducir, etc., pero simplemente me cuesta ponerlo en acción. ¿Hay una manera simple de hacer esto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede agrupar los datos por asignación, usando Array.reduce() .

Una vez que hemos agrupado los datos, podemos obtener el promedio tanto de difficulty como de fun .

 let data = [{ name: "Evelyn", assignment: "SCRUM", difficulty: 3, fun: 4 }, { name: "Bill", assignment: "SCRUM", difficulty: 1, fun: 3 }, { name: "Carol", assignment: "SCRUM", difficulty: 2, fun: 5 }, { name: "Evelyn", assignment: "PLANNING", difficulty: 5, fun: 3 }, { name: "Bill", assignment: "PLANNING", difficulty: 6, fun: 1 }, { name: "Carol", assignment: "PLANNING", difficulty: 1, fun: 2 } ] const groupedData = Object.values(data.reduce((acc, { name, assignment, difficulty, fun }) => { acc[assignment] = acc[assignment] || { assignment, difficulty: 0, fun: 0, participants: 0 }; acc[assignment].difficulty += difficulty; acc[assignment].fun += fun; acc[assignment].participants++; return acc; }, {})) const result = groupedData.map(({ assignment, participants, difficulty, fun }) => { return { assignment, participants, averageDifficulty: difficulty / participants, averageFun: fun / participants } }); console.log(result)
 .as-console-wrapper { max-height: 100% !important; }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda