Advertisement
Lulunga

racers regex alternative (switch)

Jul 26th, 2019
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(arr) {
  2.     let participants = arr.shift().split(', ');
  3.     let results = {};
  4.     arr.forEach(line => {
  5.         let namePattern = /[A-Za-z]/gm;
  6.         let distancePattern = /[0-9]/gm;
  7.         let name = line.match(namePattern).join('');
  8.         if (participants.includes(name)) {
  9.             let distance = line.match(distancePattern).map(Number).reduce((a, b) => a + b, 0);
  10.             if (!results[name]) {
  11.                 results[name] = 0;
  12.             }
  13.             results[name] += distance;
  14.         }
  15.  
  16.     });
  17.  
  18.     let result = Object.keys(results)
  19.         .sort((a, b) => results[b] - results[a])
  20.         .slice(0, 3)
  21.         .forEach((racer, i) => {
  22.             let p = '';
  23.             switch (i) {
  24.                 case 0:
  25.                     p = 'st';
  26.                     break;
  27.                 case 1:
  28.                     p = 'nd';
  29.                     break;
  30.                 case 2:
  31.                     p = 'rd';
  32.                     break;
  33.  
  34.  
  35.             }
  36.             console.log(`${i + 1}${p} place: ${racer}`);
  37.  
  38.  
  39.         });
  40.  
  41.  
  42.  
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement