Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve() {
- document.querySelector('#btnSend').addEventListener('click', onClick);
- function onClick() {
- let inputArrayElement = document.getElementsByTagName('textarea')[0];
- let inputArray = JSON.parse(inputArrayElement.value);
- let dataObj = {};
- for (const restaurant of inputArray) {
- let [restaurantName, workers] = restaurant.split(' - ');
- let workersArr = workers.split(', ');
- if (!dataObj.hasOwnProperty(restaurantName)) {
- dataObj[restaurantName] = {};
- }
- for (const worker of workersArr) {
- let [name, salary] = worker.split(' ');
- salary = Number(salary);
- dataObj[restaurantName][name] = salary;
- }
- }
- for (const key in dataObj) {
- let employeesCount = Object.entries(dataObj[key]).length;
- let totalSalary = Object.values(dataObj[key]).reduce((a, b) => a + b);
- let averageSalary = parseFloat((totalSalary / employeesCount).toFixed(2));
- let topWorker = Object.entries(dataObj[key]).sort((a, b) => b[1] - a[1])[0][0];
- dataObj[key].averageSalary = averageSalary;
- dataObj[key].topWorker = {
- name: topWorker,
- salary: dataObj[key][topWorker],
- }
- }
- let sortedBest = Object.entries(dataObj).sort((a, b) => b[1].averageSalary - a[1].averageSalary);
- console.log(sortedBest);
- let bestRestaurant = sortedBest[0][0];
- let averageSalary = sortedBest[0][1].averageSalary;
- let bestWorkerSalary = sortedBest[0][1].topWorker.salary;
- let bestRestaurantElement = document.querySelector('#bestRestaurant p');
- bestRestaurantElement.textContent += `Name: ${bestRestaurant} Average Salary: ${averageSalary.toFixed(2)} Best Salary: ${bestWorkerSalary.toFixed(2)}`
- let bestWorkersElement = document.querySelector('#workers p');
- let result = '';
- let sortedBestWorkers = Object.entries(sortedBest[0][1]).sort((a,b) => b[1] - a[1]);
- for (const worker of sortedBestWorkers) {
- if (worker[0] !== 'averageSalary' && worker[0] !== 'topWorker') {
- result += `Name: ${worker[0]} With Salary: ${worker[1]} `;
- }
- }
- bestWorkersElement.textContent = result;
- }
- }
Add Comment
Please, Sign In to add comment