Kamend1

07. Hells' kitchen

Mar 20th, 2025
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let data = document.querySelector('#inputs textarea').value;
  3.     let dataArr = JSON.parse(data);
  4.     let restaurantMap = new Map();
  5.  
  6.     for (let element of dataArr) {
  7.         let [restaurant, workers] = element.split(' - ');
  8.  
  9.         if (!restaurantMap.has(restaurant)) {
  10.             restaurantMap.set(restaurant, []);
  11.         }
  12.  
  13.         let workerArr = workers.split(', ');
  14.  
  15.         for (let worker of workerArr) {
  16.             let [name, wage] = worker.split(' ');
  17.             restaurantMap.get(restaurant).push({ name, wage: Number(wage) });
  18.         }
  19.     }
  20.  
  21.     let bestRestaurantEntry = [...restaurantMap.entries()]
  22.         .map(([name, workers]) => {
  23.             let avgSalary = workers.reduce((acc, curr) => acc + curr.wage, 0) / workers.length;
  24.             let bestSalary = Math.max(...workers.map(w => w.wage));
  25.             return { name, avgSalary, bestSalary, workers };
  26.         })
  27.         .sort((a, b) => b.avgSalary - a.avgSalary)[0];
  28.  
  29.     bestRestaurantEntry.workers.sort((a, b) => b.wage - a.wage);
  30.  
  31.     document.querySelector('#bestRestaurant p').textContent =
  32.         `Name: ${bestRestaurantEntry.name} Average Salary: ${bestRestaurantEntry.avgSalary.toFixed(2)} Best Salary: ${bestRestaurantEntry.bestSalary.toFixed(2)}`;
  33.  
  34.     document.querySelector('#workers p').textContent =
  35.         bestRestaurantEntry.workers.map(w => `Name: ${w.name} With Salary: ${w.wage}`).join(' ');
  36. }
Advertisement
Add Comment
Please, Sign In to add comment