-
Notifications
You must be signed in to change notification settings - Fork 0
/
p0-w4-e16-Graduates-v2.js
113 lines (102 loc) · 2.25 KB
/
p0-w4-e16-Graduates-v2.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
//Week-4 Exercise 16 Graduates
/*
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 objClass = {};
for(var i=0; i<students.length; i++) {
if(objClass[students[i]['class']]===undefined && students[i]['score']>75) {
objClass[students[i]['class']] = [{name: students[i]['name'], score: students[i]['score']}]
}
else if(students[i]['score']>75) {
objClass[students[i]['class']].push({name: students[i]['name'], score: students[i]['score']})
}
}
return objClass;
}
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([])); //{}