-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathanalyzeMarks.js
More file actions
73 lines (55 loc) · 1.69 KB
/
analyzeMarks.js
File metadata and controls
73 lines (55 loc) · 1.69 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
/**
===========Problem 2: Student Marks Analyzer=============
Function name: analyzeMarks(marksObj)
Statement:
Return total marks, average marks, highest scoring subject, and lowest scoring subject.
Test case 1
Input: { math: 78, english: 65, physics: 88, bangla: 55 }
Output: { total: 286, average: 71.5, highest: "physics", lowest: "bangla" }
============================
hints
============================
1. Total ===> use for in loop or manual method
2. use "Object.keys(obj_Name).length" for find object length
3. To find highest mark set a variable value -Infinity.
4. To find lowest mark set a variable value Infinity.
*/
function analyzeMarks(marksObj) {
let subjectBasedMarks = { math: 78, english: 65, physics: 88, bangla: 55 };
// first method for addition
let total = 0;
for (let key in subjectBasedMarks) {
let marks = subjectBasedMarks[key];
total += marks;
}
// Second method for addition
let totalMarks =
subjectBasedMarks.math +
subjectBasedMarks.english +
subjectBasedMarks.physics +
subjectBasedMarks.bangla;
let avgMarks = totalMarks / Object.keys(subjectBasedMarks).length.toFixed(2);
let highestMark = -Infinity;
let lowestMark = Infinity;
let highestSubject = null;
let lowestSubject = null;
for (const key in subjectBasedMarks) {
let mark = subjectBasedMarks[key];
if (mark > highestMark) {
highestMark = mark;
highestSubject = key;
}
if (mark < lowestMark) {
lowestMark = mark;
lowestSubject = key;
}
}
return {
total: totalMarks,
average: avgMarks,
highestSubject,
lowestSubject,
};
}
let result = analyzeMarks();
console.log(result);