-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgraduates.js
116 lines (107 loc) · 2.3 KB
/
graduates.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/*
Implementasikan function graduates untuk mendapatkan daftar student yang lulus dengan aturan:
Student dapat dinyatakan lulus apabila score lebih besar dari 75.
Masukkan name dan score dari student ke class yang dia ikuti.
Student yang tidak lulus tidak perlu ditampilkan.
Output yang diharapkan berupa Object Literal dengan format sebagai berikut:
{
<class>: [
{ name: <name>, score: <score> },
...
],
<class>: [
{ name: <name>, score: <score> },
...
],
<class>: [] //NOTE: Jika tidak ada student yang lulus, class ini akan diisi oleh array kosong
}
*/
function graduates(students) {
var graduates = {};
for(var i in students){
var kelas = students[i].class;
if (graduates[kelas] === undefined && students[i].score > 75){ // buat objek baru & mastiin student yg gagal ga masuk
var student = {};
student.name = students[i].name;
student.score = students[i].score;
graduates[kelas] = [student];
} else if (students[i].score > 75){//buat masukin student lain yg lulus jika kelasnya udah dibikin sebelumnya
var anotherStudent = {};
anotherStudent.name = students[i].name;
anotherStudent.score = students[i].score;
graduates[kelas].push(anotherStudent);
}
}
return graduates;
}
console.log(graduates([
{
name: 'Dimitri',
score: 90,
class: 'foxes'
},
{
name: 'Alexei',
score: 85,
class: 'wolves'
},
{
name: 'Sergei',
score: 74,
class: 'foxes'
},
{
name: 'Anastasia',
score: 78,
class: 'wolves'
}
]));
// {
// foxes: [
// { name: 'Dimitri', score: 90 }
// ],
// wolves: [
// { name: 'Alexei' , score: 85 },
// { name: 'Anastasia', score: 78 }
// ]
// }
console.log(graduates([
{
name: 'Alexander',
score: 100,
class: 'foxes'
},
{
name: 'Alisa',
score: 76,
class: 'wolves'
},
{
name: 'Vladimir',
score: 92,
class: 'foxes'
},
{
name: 'Albert',
score: 71,
class: 'wolves'
},
{
name: 'Viktor',
score: 80,
class: 'tigers'
}
]));
// {
// foxes: [
// { name: 'Alexander', score: 100 },
// { name: 'Vladimir', score: 92 }
// ],
// wolves: [
// { name: 'Alisa', score: 76 },
// ],
// tigers: [
// { name: 'Viktor', score: 80 }
// ]
// }
console.log(graduates([])); //{}