forked from Automedon/CodeWars-8-kyu-Soluitions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Check the exam.js
27 lines (20 loc) · 976 Bytes
/
Check the exam.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
/*
Description:
The first input array contains the correct answers to an exam, like ["a", "a", "b", "d"]. The second one is "answers" array and contains student's answers.
The two arrays are not empty and are the same length. Return the score for this array of answers, giving +4 for each correct answer, -1 for each incorrect answer, and +0 for each blank answer(empty string).
If the score < 0, return 0.
For example:
checkExam(["a", "a", "b", "b"], ["a", "c", "b", "d"]) → 6
checkExam(["a", "a", "c", "b"], ["a", "a", "b", ""]) → 7
checkExam(["a", "a", "b", "c"], ["a", "a", "b", "c"]) → 16
checkExam(["b", "c", "b", "a"], ["", "a", "a", "c"]) → 0
*/
const checkExam = (answers, responses) => {
const score = responses.reduce((total, response, index) => {
if (!response) return total
if (response === answers[index]) return total + 4
if (response !== answers[index]) return total - 1
return total
}, 0)
return score > 0 ? score : 0
}