Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 880752f

Browse files
committed
class-list exercise completed
1 parent ebd725e commit 880752f

File tree

2 files changed

+51
-5
lines changed

2 files changed

+51
-5
lines changed

.vscode/launch.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"type": "node",
9+
"request": "launch",
10+
"name": "Launch Program",
11+
"skipFiles": [
12+
"<node_internals>/**"
13+
],
14+
"program": "${workspaceFolder}\\Week3\\prep-exercises\\1-hyf-program\\2-class-list.js"
15+
}
16+
]
17+
}

Week3/prep-exercises/1-hyf-program/2-class-list.js

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,33 @@ import { modules, students, mentors, classes } from "./hyf.js";
1212
* [{ name: 'John', role: 'student' }, { name: 'Mary', role: 'mentor' }]
1313
*/
1414
const getPeopleOfClass = (className) => {
15-
// TODO complete this function
16-
};
15+
const studentsOfClass = students
16+
.filter(student => student.class === className)
17+
.map(student => {
18+
return {
19+
name: student.name,
20+
role: 'student'
21+
}
22+
})
23+
24+
let currentModule;
25+
classes.map(classItem => {
26+
if(classItem.name === className && classItem.active === true) {
27+
currentModule = classItem.currentModule
28+
}
29+
})
30+
const mentorsOfClass = mentors
31+
.filter(mentor => mentor.nowTeaching && mentor.nowTeaching === currentModule)
32+
.map(mentor => {
33+
return {
34+
name: mentor.name,
35+
role: 'mentor'
36+
}
37+
})
38+
return currentModule ? [...studentsOfClass, ...mentorsOfClass]: [...studentsOfClass]
39+
};
1740
// You can uncomment out this line to try your function
18-
// console.log(getPeopleOfClass('class34'));
41+
//console.log(getPeopleOfClass('class34'));
1942

2043
/**
2144
* We would like to have a complete overview of the current active classes.
@@ -30,7 +53,13 @@ const getPeopleOfClass = (className) => {
3053
* }
3154
*/
3255
const getActiveClasses = () => {
33-
// TODO complete this function
56+
const activeClasses = {}
57+
classes
58+
.filter(classItem => classItem.active === true)
59+
.map(classItem => {
60+
activeClasses[classItem.name] = getPeopleOfClass(classItem.name)
61+
})
62+
return activeClasses;
3463
};
3564
// You can uncomment out this line to try your function
36-
// console.log(getActiveClasses());
65+
console.log(getActiveClasses());

0 commit comments

Comments
 (0)