-
Notifications
You must be signed in to change notification settings - Fork 0
/
lat12.js
73 lines (68 loc) · 2.27 KB
/
lat12.js
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
/*
di data structure, yang harus student achieve:
- forming sebuah array berisikan object
- bisa mengakses isi terdalam dari array berisikan object
- bisa melakukan operasi filtering / grouping data
*/
/*
---------------
Students Report
---------------
PROBLEM
=======
Diberikan sebuah function bernama getReport.
Function akan menerima sebuah parameter array of object dengan format:
[
{ name: <nama student>, score: <score student>, classCode: <kode kelas>},
{ name: <nama student>, score: <score student>, classCode: <kode kelas>},
...
]
Data di atas merupakan campuran seluruh nilai student dari kelas manapun.
Function akan memproses array of object tersebut untuk membuat sebuah report dalam bentuk array of object dengan format:
[
{ classCode: <kode kelas>, passed: <array berisi nama student yg lulus>, failed: <array berisi nama student yg failed> },
{ classCode: <kode kelas>, passed: <array berisi nama student yg lulus>, failed: <array berisi nama student yg failed> },
...
]
Data yang diharapkan merupakan akumulasi student yang lulus dan tidak dari setiap kelas.
Standard kelulusan adalah minimum 70.
*/
function getReport(studentGrades) {
var result=[]
var abjad="ABC"
for (var i = 0; i < abjad.length; i++) {
var passed=[], failed=[]
var Obj={}
for (var j = 0; j < studentGrades.length; j++) {
if (abjad[i]===studentGrades[j].classCode) {
if (studentGrades[j].score>=70) {
passed.push(studentGrades[j].name)
}
else {
failed.push(studentGrades[j].name)
}
Obj={classCode: studentGrades[j].classCode, passed: passed, failed: failed}
}
}
result.push(Obj)
}
return result
}
var grades1 = [
{ name: 'John', score: 80, classCode: 'A' },
{ name: 'Mike', score: 60, classCode: 'B' },
{ name: 'Budi', score: 70, classCode: 'C' },
{ name: 'Siti', score: 50, classCode: 'A' },
{ name: 'Aaron', score: 10, classCode: 'A' },
{ name: 'Arthur', score: 10, classCode: 'C' },
{ name: 'Osass', score: 10, classCode: 'B' },
{ name: 'Yolo', score: 90, classCode: 'C' },
];
console.log(getReport(grades1));
/*
[
{ classCode: 'A', passed: [ 'John' ], failed: [ 'Siti', 'Aaron' ] },
{ classCode: 'B', passed: [], failed: [ 'Mike', 'Osass' ] },
{ classCode: 'C', passed: [ 'Budi', 'Yolo' ], failed: [ 'Arthur' ] },
]
*/