-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmost-money.js
50 lines (48 loc) · 1.28 KB
/
most-money.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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// kata - https://www.codewars.com/kata/528d36d7cc451cd7e4000339
const mostMoney = (students) => {
if (students.length === 1) return students[0].name;
return students.reduce(
(richest, student) => {
const studentMoney = student.fives * 5 + student.tens * 10 + student.twenties * 20;
if (studentMoney > richest.money) {
richest.money = studentMoney;
richest.name = student.name;
} else if (studentMoney === richest.money) {
richest.name = 'all';
}
return richest;
},
{ money: 0, name: '' }
).name;
};
console.log(
mostMoney([
{ name: 'A', fives: 0, tens: 0, twenties: 2 },
{ name: 'B', fives: 0, tens: 0, twenties: 2 },
]),
'all'
);
console.log(
mostMoney([
{ name: 'A', fives: 0, tens: 0, twenties: 2 },
{ name: 'B', fives: 0, tens: 0, twenties: 3 },
]),
'B'
);
console.log(
mostMoney([
{ name: 'A', fives: 0, tens: 0, twenties: 2 },
{ name: 'B', fives: 0, tens: 0, twenties: 2 },
{ name: 'C', fives: 0, tens: 0, twenties: 2 },
]),
'all'
);
console.log(
mostMoney([
{ name: 'A', fives: 0, tens: 0, twenties: 2 },
{ name: 'B', fives: 0, tens: 0, twenties: 2 },
{ name: 'C', fives: 0, tens: 0, twenties: 2 },
{ name: 'D', fives: 1, tens: 0, twenties: 2 },
]),
'D'
);