dunyto

Untitled

May 30th, 2022
894
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 myText = document.getElementsByTagName('textarea')[0];
  6.       let info = myText.value;
  7.        let restaurants = info.split('"');
  8.        let data = [];
  9.        for (let i = 1; i < restaurants.length; i += 2) {
  10.            data.push(restaurants[i]);
  11.        }
  12.  
  13.        let restObj = {};
  14.        for (let rest of data) {
  15.            let entity = rest.split(" - ");
  16.            let restName = entity.shift();
  17.            if (!restObj.hasOwnProperty(restName)) {
  18.                restObj[restName] = {};
  19.                let salSum = 0;
  20.                let emps = entity[0].split(", ");
  21.                for (let en = 0; en < emps.length; en ++) {
  22.                    let person = emps[en].split(" ");
  23.                    salSum += Number(person[1]);
  24.                    restObj[restName][person[0]] = Number(person[1]);
  25.                }
  26.                restObj[restName]['Average'] = salSum/emps.length;
  27.            } else {
  28.                delete restObj[restName]['Average'];
  29.                let emps = entity[0].split(", ");
  30.                for (let en = 0; en < emps.length; en ++) {
  31.                    let person = emps[en].split(" ");
  32.                    restObj[restName][person[0]] = Number(person[1]);
  33.                }
  34.                let newSals = Object.values(restObj[restName]);
  35.                let newSum = 0;
  36.                for (let value of newSals) {
  37.                    newSum += value;
  38.                }
  39.                restObj[restName]['Average'] = newSum/newSals.length;
  40.            }
  41.        }
  42.        let bestRest = Object.entries(restObj);
  43.        let results = [];
  44.        for (let i = 0; i < bestRest.length; i ++){
  45.            results.push(bestRest[i][0]);
  46.            results.push(bestRest[i][1]['Average']);
  47.            let bestSals = Object.values(bestRest[i][1]);
  48.            results.push(Math.max(...bestSals));
  49.        }
  50.        let bestValue = 0;
  51.        let bestInd = 1;
  52.        for (let j = bestInd; j < results.length; j += 3) {
  53.            if (results[j] > bestValue) {
  54.                bestValue = results[j];
  55.                bestInd = j;
  56.            }
  57.        }
  58.  
  59.        let target1 = document.querySelector('div#bestRestaurant p');
  60.        let predicate1 = `Name: ${results[bestInd - 1]} Average Salary: ${results[bestInd].toFixed(2)} Best Salary: ${results[bestInd + 1].toFixed(2)}`;
  61.        target1.textContent = predicate1;
  62.  
  63.        let target2 = document.querySelector('div#workers p');
  64.        let workers = Object.entries(restObj[results[bestInd - 1]]);
  65.        workers.pop();
  66.        let sorted = workers.sort((a, b) => b[1] - a[1]);
  67.        let workersList = "";
  68.        for (let e = 0; e < sorted.length; e ++) {
  69.            workersList += `Name: ${sorted[e][0]} With Salary: ${sorted[e][1]} `;
  70.        }
  71.        target2.textContent = workersList;
  72.    }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment