Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

266
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!