Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(args) {
- const participants = args.shift().split(', ');
- const racers = {};
- participants.forEach((name) => {
- if (!Object.prototype.hasOwnProperty.call(racers, name)) {
- racers[name] = [];
- }
- });
- args.forEach((str) => {
- if (str !== 'end of race') {
- const name = str.match(/[A-Za-z]+/g).join('');
- const distanceRan = str.match(/\d/g);
- if (Object.prototype.hasOwnProperty.call(racers, name)) {
- const distanceCalc = distanceRan.map(Number).reduce((acc, currV) => acc + currV, 0);
- racers[name].push(distanceCalc);
- if (racers[name][1] !== undefined) {
- const sum = racers[name].reduce((acc, currV) => acc + currV);
- racers[name] = [sum];
- }
- racers[name].sort((a, b) => b - a);
- }
- }
- });
- const winners = Object.entries(racers).sort((a, b) => b[1] - a[1]).slice(0, 3);
- winners.forEach((racer, index) => {
- const [name] = racer;
- const numbPlace = index + 1;
- if (numbPlace === 1) {
- console.log(`${numbPlace}st place: ${name}`);
- } else if (numbPlace === 2) {
- console.log(`${numbPlace}nd place: ${name}`);
- } else if (numbPlace === 3) {
- console.log(`${numbPlace}rd place: ${name}`);
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement