forked from jsmapr1/simplifying-js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfilter.js
More file actions
89 lines (76 loc) · 1.56 KB
/
Copy pathfilter.js
File metadata and controls
89 lines (76 loc) · 1.56 KB
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
/* eslint-disable no-unused-vars */
const team = [
'Michelle B',
'Dave L',
'Dave C',
'Courtney B',
'Davina M',
];
function getDaveVariants(team) {
// START:filter
const daves = team.filter(member => member.match(/Da/));
// END:filter
return daves;
}
const instructors = [
{
name: 'Jim',
libraries: ['MERIT'],
},
{
name: 'Sarah',
libraries: ['Memorial', 'SLIS'],
},
{
name: 'Eliot',
libraries: ['College Library'],
},
];
function findMemorialInstructor(instructors) {
// START:findInstructor
const librarian = instructors.find(instructor => {
return instructor.libraries.includes('Memorial');
});
// END:findInstructor
return librarian;
}
function findAnyInstructor(instructors) {
// START:findInstructorCurry
const findByLibrary = library => instructor => {
return instructor.libraries.includes(library);
};
const librarian = instructors.find(findByLibrary('MERIT'));
// {
// name: 'Jim',
// libraries: ['MERIT'],
// }
// END:findInstructorCurry
return librarian;
}
// START:score
const scores = [30, 82, 70, 45];
function getNumberOfPassingScores(scores) {
const passing = scores.filter(score => score > 59);
// [70, 82]
return passing.length;
}
// 2
// END:score
// START:perfect
function getPerfectScores(scores) {
const perfect = scores.filter(score => score === 100);
// []
return perfect.length;
}
// 0
// END:perfect
export {
scores,
getDaveVariants,
findAnyInstructor,
findMemorialInstructor,
getNumberOfPassingScores,
getPerfectScores,
instructors,
team,
};