dninov81

Untitled

Dec 11th, 2020
745
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve (input) {
  2.     let numCars = Number(input.shift());
  3.     let carsObj = {};
  4.     for (let index = 0; index < numCars; index++) {
  5.        let [model, mileage, fuel] = input[index].split("|");
  6.        carsObj[model] = {};
  7.        carsObj[model].mileage = Number(mileage);
  8.        carsObj[model].fuel = Number(fuel);
  9.     }
  10.     input.splice(0, numCars);
  11.     input.pop();
  12.     let commands = {
  13.         Drive (model, distance, fuel){
  14.             let fuelLeft = carsObj[model].fuel - Number(fuel);
  15.             if (fuelLeft <= 0) {
  16.                 console.log("Not enough fuel to make that ride");
  17.             }else{
  18.                 carsObj[model].fuel = fuelLeft;
  19.                 carsObj[model].mileage += Number(distance);
  20.                 console.log(`${model} driven for ${distance} kilometers. ${fuel} liters of fuel consumed.`);
  21.             }
  22.             if (carsObj[model].mileage >= 100000) {
  23.                 console.log(`Time to sell the ${model}!`);
  24.                 delete carsObj[model];
  25.             }
  26.         },
  27.         Refuel(car, fuel){
  28.             let totalFuel = carsObj[car].fuel + Number(fuel);
  29.             if (totalFuel >= 75) {
  30.                 console.log(`${car} refueled with ${75 - carsObj[car].fuel} liters`);
  31.                 carsObj[car].fuel = 75;
  32.             }else{
  33.                 carsObj[car].fuel += Number(fuel);
  34.                 console.log(`${car} refueled with ${fuel} liters`);
  35.             }
  36.         },
  37.         Revert(car, distance){
  38.            let decreasedDistance = carsObj[car].mileage - Number(distance);
  39.            if (decreasedDistance <= 10000) {
  40.             carsObj[car].mileage  = 10000;
  41.            } else {
  42.             carsObj[car].mileage -= distance;
  43.             console.log(`${car} mileage decreased by ${distance} kilometers`);
  44.            }
  45.         }
  46.  
  47.     }
  48.     input.forEach(element => {
  49.         let [command, ...arg] = element.split(" : ");
  50.         commands[command](...arg);
  51.     });
  52.     let sorted = Object.entries(carsObj);
  53.     sorted.sort((a,b) => b[1].mileage - a[1].mileage );
  54.     sorted.forEach(element => {
  55.     console.log(`${element[0]} -> Mileage: ${element[1].mileage} kms, Fuel in the tank: ${element[1].fuel} lt.`);
  56.  });
  57.  
  58.     }
Advertisement
Add Comment
Please, Sign In to add comment