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

Skip to content

Commit faa697b

Browse files
committed
solve prep 1 and 2
1 parent c4a01c2 commit faa697b

File tree

2 files changed

+53
-10
lines changed

2 files changed

+53
-10
lines changed

Week3/prep-exercises/1-hyf-program/1-find-mentors.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ import { modules, students, mentors, classes } from "./hyf.js";
88
* ['John', 'Mary']
99
*/
1010
const possibleMentorsForModule = (moduleName) => {
11-
// TODO complete this function
11+
const mentorsCanTeach = mentors
12+
.filter(methods => methods.canTeach.some(method => method === moduleName))
13+
.map(mentor => mentor.name);
14+
return mentorsCanTeach;
1215
};
13-
// You can uncomment out this line to try your function
14-
// console.log(possibleMentorsForModule('using-apis'));
16+
console.log(possibleMentorsForModule('javascript'));
1517

1618
/**
1719
* Tjebbe wants to make it even easier for himself.
@@ -20,7 +22,11 @@ const possibleMentorsForModule = (moduleName) => {
2022
* It should return a single name.
2123
*/
2224
const findMentorForModule = (moduleName) => {
23-
// TODO complete this function
25+
const mentorsCanTeach = mentors
26+
.filter(methods => methods.canTeach.some(method => method === moduleName))
27+
.map(mentor => mentor.name);
28+
return mentorsCanTeach[(Math.floor(Math.random() * mentorsCanTeach.length))];
2429
};
2530
// You can uncomment out this line to try your function
26-
// console.log(findMentorForModule('javascript'));
31+
console.log(findMentorForModule('javascript'));
32+

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

Lines changed: 42 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.
@@ -10,9 +10,38 @@ import { modules, students, mentors, classes } from "./hyf.js";
1010
* Should return the list of names and their roles. So something like:
1111
*
1212
* [{ name: 'John', role: 'student' }, { name: 'Mary', role: 'mentor' }]
13+
*
14+
*
1315
*/
16+
17+
// const mentorsCanTeach = mentors
18+
// .filter(methods => methods.canTeach.some(method => method === moduleName))
19+
// .map(mentor => mentor.name);
20+
// return mentorsCanTeach;
21+
1422
const getPeopleOfClass = (className) => {
15-
// TODO complete this function
23+
24+
const studentsInClass = students.filter(student => student.class === className)
25+
.map(student => student.name);
26+
27+
const moduleName = classes.filter(whatClassIs => whatClassIs.name === className)
28+
.map(module => module.currentModule)[0];
29+
30+
const mentorName = mentors.filter(mod => mod.nowTeaching === moduleName)
31+
.map(TeacherName => TeacherName.name)[0];
32+
33+
const listOfNames = [
34+
{
35+
name: studentsInClass[0],
36+
role: 'student'
37+
},
38+
{
39+
name: mentorName,
40+
role: 'mentor'
41+
42+
},
43+
];
44+
return listOfNames;
1645
};
1746
// You can uncomment out this line to try your function
1847
// console.log(getPeopleOfClass('class34'));
@@ -29,8 +58,16 @@ const getPeopleOfClass = (className) => {
2958
* class35: [{ name: 'Jane', role: 'student' }, { name: 'Steve', role: 'mentor' }]
3059
* }
3160
*/
61+
3262
const getActiveClasses = () => {
33-
// TODO complete this function
63+
const activeClasses = classes.filter(cls => cls.active);
64+
65+
const result = {};
66+
67+
activeClasses.forEach(element => {
68+
result[element.name] = getPeopleOfClass(element.name);
69+
});
70+
71+
return result;
3472
};
35-
// You can uncomment out this line to try your function
36-
// console.log(getActiveClasses());
73+
console.log(getActiveClasses());

0 commit comments

Comments
 (0)