-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstudentsAverage.js
More file actions
95 lines (80 loc) · 2.38 KB
/
studentsAverage.js
File metadata and controls
95 lines (80 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
En este desafío, deberás calcular el promedio general de una clase, así como el promedio individual de cada estudiante.
Para ello, se te proporcionará un array de objetos, cada uno de los cuales representará a un estudiante y tendrá las siguientes propiedades:
name: El nombre del estudiante
grades: Las notas de cada materia del estudiante
A partir de esta información, debes retornar un nuevo objeto que tenga la propiedad classAverage con el promedio de la clase y un array de students con los estudiantes y sus promedios individuales.
Es importante mencionar que los promedios deben ser calculados con precisión y se deben redondear a dos decimales para que los test pasen sin problema alguno. Puedes usar el método toFixed().
*/
/*
Input: getStudentAverage([
{
name: "Pedro",
grades: [90, 87, 88, 90],
},
{
name: "Jose",
grades: [99, 71, 88, 96],
},
{
name: "Maria",
grades: [92, 81, 80, 96],
},
])
Output: {
classAverage: 88.17,
students: [
{
name: "Pedro",
average: 88.75
},
{
name: "Jose",
average: 88.5
},
{
name: "Maria",
average: 87.25
}
]
}
*/
const students = [
{
name: "Pedro",
grades: [90, 87, 88, 90],
},
{
name: "Jose",
grades: [99, 71, 88, 96],
},
{
name: "Maria",
grades: [92, 81, 80, 96],
},
]
function getStudentsAverage(students){
// Creo el array de objetos que contiene el nombre y promedio de cada alumno
const studentsAverage = students.map(student => {
let sum = 0
student.grades.forEach(grade => sum += grade)
return {name: student.name, average: parseFloat((sum / student.grades.length).toFixed(2))}
})
// Calculo el promedio del aula
let sumAverage = 0
studentsAverage.forEach(student => {sumAverage += student.average})
const classAverage = parseFloat((sumAverage / studentsAverage.length).toFixed(2))
// Retorno el promedio de la clase y el array de estudiantes y sus promedios respectivos
return {classAverage, students: studentsAverage}
}
console.log(getStudentsAverage(students))
/*
{
classAverage: 88.17,
students: [
{ name: 'Pedro', average: 88.75 },
{ name: 'Jose', average: 88.5 },
{ name: 'Maria', average: 87.25 }
]
}
*/