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

Skip to content

Commit d8e5d44

Browse files
committed
Solved prep questions
1 parent 7adebbf commit d8e5d44

File tree

2 files changed

+42
-10
lines changed

2 files changed

+42
-10
lines changed
Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { modules, students, mentors, classes } from "./hyf.js";
1+
import { modules, students, mentors, classes } from './hyf.js';
22

33
/**
44
* Tjebbe would like help to get a list of possible mentors for a module.
@@ -8,10 +8,15 @@ import { modules, students, mentors, classes } from "./hyf.js";
88
* ['John', 'Mary']
99
*/
1010
const possibleMentorsForModule = (moduleName) => {
11-
// TODO complete this function
11+
const availableMentors = mentors
12+
.filter(({ canTeach }) => canTeach.includes(moduleName))
13+
.map(({ name }) => name);
14+
return availableMentors;
1215
};
1316
// You can uncomment out this line to try your function
14-
// console.log(possibleMentorsForModule('using-apis'));
17+
18+
console.log(possibleMentorsForModule('using-apis'));
19+
console.log(possibleMentorsForModule('javascript'));
1520

1621
/**
1722
* Tjebbe wants to make it even easier for himself.
@@ -20,7 +25,13 @@ const possibleMentorsForModule = (moduleName) => {
2025
* It should return a single name.
2126
*/
2227
const findMentorForModule = (moduleName) => {
23-
// TODO complete this function
28+
const availableMentors = possibleMentorsForModule(moduleName);
29+
if (availableMentors.length >= 0) {
30+
const randomNumber = Math.floor(Math.random() * availableMentors.length);
31+
return availableMentors[randomNumber];
32+
} else {
33+
console.log('No available mentor for this module');
34+
}
2435
};
2536
// You can uncomment out this line to try your function
26-
// console.log(findMentorForModule('javascript'));
37+
console.log(findMentorForModule('javascript'));

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

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { modules, students, mentors, classes } from "./hyf.js";
1+
import { modules, students, mentors, classes } from './hyf.js';
22

33
/**
44
* We would like to have a list of everyone that is currently participating in a class.
@@ -12,10 +12,24 @@ 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
15+
const { currentModule } = classes.find((item) => item.name === className);
16+
17+
const studentsClass = students
18+
.filter((student) => student.class === className)
19+
.map((student) => {
20+
return { name: student.name, role: 'student' };
21+
});
22+
23+
const mentorsClass = mentors
24+
.filter((mentor) => mentor.nowTeaching === currentModule)
25+
.map((mentor) => {
26+
return { name: mentor.name, role: 'mentor' };
27+
});
28+
29+
return [...studentsClass, ...mentorsClass];
1630
};
1731
// You can uncomment out this line to try your function
18-
// console.log(getPeopleOfClass('class34'));
32+
console.log(getPeopleOfClass('class34'));
1933

2034
/**
2135
* We would like to have a complete overview of the current active classes.
@@ -30,7 +44,14 @@ const getPeopleOfClass = (className) => {
3044
* }
3145
*/
3246
const getActiveClasses = () => {
33-
// TODO complete this function
47+
const activeClasses = classes.filter((specificClass) => specificClass.active);
48+
49+
return activeClasses.reduce((accumulator, activeClass) => {
50+
return {
51+
...accumulator,
52+
[activeClass.name]: getPeopleOfClass(activeClass.name),
53+
};
54+
}, {});
3455
};
3556
// You can uncomment out this line to try your function
36-
// console.log(getActiveClasses());
57+
console.log(getActiveClasses());

0 commit comments

Comments
 (0)