Liliana797979

race1 - fundamentals

Jul 30th, 2021
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.      
  3. function race(array) {
  4.     let nameOfRacers = array.shift().split(', ');
  5.     let racersObj = {}
  6.     let places = {
  7.         1:'1st',
  8.         2:'2nd',
  9.         3:'3rd'
  10.     }
  11.     let raceName = ''
  12.     let tempKms = 0;
  13.     let counter = 0;
  14.     for (const str of array) {
  15.         if (str === 'end of race') {
  16.             break;
  17.         }
  18.         let strArr = str.split('')
  19.         for (let i = 0; i < strArr.length; i++) {
  20.             let regex = /^[A-Za-z]+$/g;
  21.             if (regex.test(strArr[i])) { // COLECT LETTERS TO NAME!
  22.                 raceName += strArr[i]
  23.             }
  24.             else if (Number.isInteger(Number(strArr[i]))) { //COLLECT KMS
  25.                 tempKms += Number(strArr[i]);
  26.             }
  27.             if (i + 1 == strArr.length) {   // FINISH NA FOR CYCLE
  28.                 if (nameOfRacers.includes(raceName)) { // CHECK RACER IS ON LIST OR NOT!
  29.                     if (!racersObj.hasOwnProperty(raceName)) { // RACER CHECK!! Y/N
  30.                         racersObj[raceName] = tempKms;
  31.                         raceName = '';
  32.                         tempKms = 0;
  33.                     }
  34.                     else {
  35.                         racersObj[raceName] += tempKms;
  36.                         raceName = '';
  37.                         tempKms = 0;
  38.                     }
  39.                 }
  40.                 else {
  41.                     raceName = '';
  42.                     tempKms = 0;
  43.                 }
  44.  
  45.             }
  46.         }
  47.     }
  48.     let sort = Object.entries(racersObj).sort((a, b) => b[1] - a[1])
  49.     let a = 1;
  50.     for (const str of sort) {
  51.         counter += 1;
  52.         if(places.hasOwnProperty(counter)){
  53.             console.log(`${places[counter]} place: ${str[0]}`);
  54.         }
  55.         if (counter === 3) {
  56.             break;
  57.         }
  58.     }
  59.  
  60.  
  61.  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment