Advertisement
Todorov_Stanimir

04. Iron Girder Fundamentals Retake Exam - 27 August 2018

Jul 24th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function ironGirder(input) {
  2.     let result = {};
  3.  
  4.     while ((line = input.shift()) !== 'Slide rule') {
  5.         let [town, timeOrAmbush, passendgers] = line.split(/\:|\->/);
  6.         passendgers = Number(passendgers);
  7.  
  8.         if (timeOrAmbush !== 'ambush') {
  9.             let time = Number(timeOrAmbush);
  10.             if (!result[town]) {
  11.                 result[town] = {
  12.                     time: 0,
  13.                     passendgers: 0
  14.                 }
  15.             }
  16.             if (result[town].time === 0 || result[town].time > time) {
  17.                 result[town].time = time;
  18.             }
  19.             result[town].passendgers += passendgers;
  20.         } else {
  21.             if (result[town]) {
  22.                 result[town].time = 0;
  23.                 result[town].passendgers -= passendgers;
  24.             }
  25.         }
  26.     }
  27.  
  28.     Object.entries(result)
  29.         .filter(town => town[1].time !== 0)
  30.         .sort((a, b) => { return a[1].time - b[1].time || a[0].localeCompare(b[0]) })
  31.         .forEach(town =>
  32.              console.log(`${town[0]} -> Time: ${town[1].time} -> Passengers: ${town[1].passendgers}`));
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement