Advertisement
ErolKZ

Untitled

Jan 28th, 2022
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. function solve() {
  2.  
  3. document.querySelector('#btnSend').addEventListener('click', onClick);
  4.  
  5. // let input = ["PizzaHut - Peter 500, George 300, Mark 800","TheLake - Bob 1300, Joe 780, Jane 660","TheLake - Bobies 1300, Joey 780, Janenit 660"];
  6.  
  7. function onClick() {
  8.  
  9. function objectCreation() {
  10.  
  11. let textInp = document.querySelector('#inputs textarea');
  12.  
  13. let input = textInp.value;
  14.  
  15. input = JSON.parse(input);
  16.  
  17. let restObj = {};
  18.  
  19. for (let el of input) {
  20.  
  21. let cur = el.split(' - ');
  22.  
  23. let restName = cur.shift();
  24.  
  25. if (restObj.hasOwnProperty(restName)) {
  26.  
  27. restObj[restName].push(cur.join(''));
  28.  
  29. } else {
  30.  
  31. restObj[restName] = cur;
  32.  
  33. }
  34.  
  35. }
  36.  
  37. return restObj;
  38.  
  39. }
  40.  
  41.  
  42.  
  43.  
  44. function calcAvgSalary() {
  45.  
  46. let restObj = objectCreation();
  47.  
  48. for (let arr in restObj) {
  49.  
  50. let curArr = restObj[arr].map(el => el.split(', '));
  51.  
  52. curArr = curArr.flat();
  53.  
  54. let sum = curArr.reduce((acc, el) => acc + Number(el.split(' ')[1]), 0);
  55.  
  56. let avgSal = sum / curArr.length;
  57.  
  58. restObj[arr].push(avgSal);
  59.  
  60. }
  61.  
  62. // console.log(restObj);
  63.  
  64. return restObj;
  65.  
  66. }
  67.  
  68.  
  69. function sorting() {
  70.  
  71. let restObj = calcAvgSalary();
  72.  
  73. let arrOfAvg = [];
  74.  
  75. let bestSal = undefined;
  76.  
  77. for (let rest in restObj) {
  78.  
  79. arrOfAvg.push([rest, restObj[rest].pop()]);
  80.  
  81. }
  82.  
  83. arrOfAvg.sort((a, b) => b[1] - a[1]);
  84.  
  85. arrOfAvg = arrOfAvg[0];
  86.  
  87. bestSal = restObj[arrOfAvg[0]];
  88.  
  89. bestSal = bestSal.map(el => el.split(', '));
  90.  
  91. bestSal = bestSal.flat().map(el => el.split(' '));
  92.  
  93. bestSal.sort((a, b) => Number(b[1]) - Number(a[1]));
  94.  
  95. bestSal = bestSal[0];
  96.  
  97. let bestResWork = restObj[arrOfAvg[0]].join(', ');
  98.  
  99. bestResWork = bestResWork.split(', ');
  100.  
  101. bestResWork = bestResWork.map(el => el.split(' '));
  102.  
  103. bestResWork.sort((a, b) => b[1] - a[1]);
  104.  
  105. console.log(bestResWork);
  106.  
  107. return [arrOfAvg, bestSal, bestResWork];
  108.  
  109. }
  110.  
  111. let name = sorting()[0][0];
  112.  
  113. let avgSal = sorting()[0][1].toFixed(2);
  114.  
  115. let bestSal = Number(sorting()[1][1]).toFixed(2);
  116.  
  117. let strOfWork = '';
  118.  
  119. let bestResWork = sorting()[2];
  120.  
  121. // console.log(bestResWork);
  122.  
  123. let bestRes = document.querySelector('#bestRestaurant p');
  124.  
  125. let workers = document.querySelector('#workers p');
  126.  
  127. bestRes.textContent = `Name: ${name} Average Salary: ${avgSal} Best Salary: ${bestSal}`;
  128.  
  129. for (let el of bestResWork) {
  130.  
  131. strOfWork += `Name: ${el[0]} With Salary: ${el[1]} `;
  132.  
  133. }
  134.  
  135. workers.textContent = strOfWork;
  136.  
  137. let area = document.querySelector('#inputs textarea');
  138.  
  139. area.value = '';
  140.  
  141. }
  142.  
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement