Advertisement
TZinovieva

Hell's Kitchen JS Advanced

Aug 16th, 2023
797
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.    document.querySelector('#btnSend').addEventListener('click', onClick);
  3.  
  4.    function onClick () {
  5.       let input = JSON.parse(document.querySelector('#inputs textarea').value);
  6.  
  7.       let currentAverageSalary = 0;
  8.       let averageSalary = 0;
  9.       let totalSalary = 0;
  10.       let bestRestaurant = '';
  11.       let output = {};
  12.  
  13.       for (let line of input) {
  14.          let restaurantInfo = line.split(' - ');
  15.          let restaurantName = restaurantInfo.shift();
  16.          let workersData = restaurantInfo[0].split(', ');
  17.          
  18.          for (let worker of workersData) {
  19.             let [workerName, workerSalary] = worker.split(' ');
  20.  
  21.             if (!output.hasOwnProperty(restaurantName)) {
  22.                output[restaurantName] = {};
  23.             }
  24.             if (output.hasOwnProperty(restaurantName)) {
  25.                output[restaurantName][workerName] = Number(workerSalary);
  26.             }
  27.          }
  28.       }
  29.       let entries = Object.entries(output);
  30.  
  31.       for (let entry of entries) {
  32.          let restName = entry[0];
  33.          let values = Object.entries(entry[1]);
  34.  
  35.          for (let [name, salary] of values) {
  36.             totalSalary += salary;
  37.          }
  38.  
  39.          averageSalary = totalSalary / values.length;
  40.  
  41.          if (averageSalary > currentAverageSalary) {
  42.             currentAverageSalary = averageSalary;
  43.             bestRestaurant = restName;
  44.             totalSalary = 0;
  45.          }
  46.       }
  47.  
  48.       let result = Object.entries(output[bestRestaurant]).sort((a, b) => b[1] - a[1]);
  49.  
  50.       let print = '';
  51.       result.forEach(w => print += `Name: ${w[0]} With Salary: ${w[1]} `);
  52.  
  53.       document.querySelector('#bestRestaurant p').textContent = `Name: ${bestRestaurant} Average Salary: ${currentAverageSalary.toFixed(2)} Best Salary: ${(result[0][1]).toFixed(2)}`;
  54.  
  55.       document.querySelector('#workers p').textContent = print;
  56.    }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement