nikolayneykov

Untitled

Mar 3rd, 2019
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(params) {
  2.     params.pop();   //махаме последния елемент от масива (не ни трябва)
  3.  
  4.     //селектираме всеки един от параметрите сплитваме го по # (става на масив от стрингове)
  5.     //от масива от стрингове селектираме всеки един стринг и го парсваме към Number
  6.     //сортираме първоначалния масив със сортиращата ни функция
  7.     let batches = params.map(e => e.split('#').map(Number)).sort(sortBatches);  
  8.  
  9.     let bestBatch = batches[0]; //вземаме първият елемент от сортиращата функция и принтираме
  10.     console.log(`Best Batch quality: ${sum(bestBatch)}\n${bestBatch.join(' ')}`);
  11.  
  12.     function sortBatches(arr1, arr2) {  //сортиращата ни функция която приема 2 масива от числа
  13.         let arr1Sum = sum(arr1);        //сумираме елементите от първия масив (имаме помощна функция sum по-надолу)
  14.         let arr2Sum = sum(arr2);        //сумираме елементите от втория масив (имаме помощна функция sum по-надолу)
  15.         let result = arr2Sum - arr1Sum; //изваждаме сумата на втория от сумата на първия (първи критерий за сортиране)
  16.  
  17.         if (result === 0) {             //при равни суми на масивите правим втори критерий за сортиране
  18.             let arr1Average = arr1Sum / arr1.length;    //смятаме средноаритметичната сума на първия масив
  19.             let arr2Average = arr2Sum / arr2.length;    //смятаме средноаритметичната сума на втория масив
  20.             result = arr2Average - arr1Average;         //презаписваме резултата (втори критерий за сортиране)
  21.  
  22.             if (result === 0) {  //при равни средноаритметични суми
  23.                 result = arr1.length - arr2.length; //трети критерий за сортиране дължината на първия - дължината на втория масив
  24.             }
  25.         }
  26.  
  27.         return result;  //връщаме резултата от сравнението на двата масива
  28.     }
  29.  
  30.     function sum(arr) {
  31.         return arr.reduce((a, b) => a + b, 0); //помощна функция връща сумата от числата на масив
  32.     }
  33. }
Advertisement
Add Comment
Please, Sign In to add comment