Advertisement
Timkor

okSum

Nov 16th, 2020
419
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function arrayPlusArray(arr1, arr2){
  2. let sum1 = 0; // можна в одну все рахувати, і в першому циклі і в другому.
  3. let sum2 = 0;
  4.   for (let i = 0; i < arr1.length; i++){
  5.      sum1 += arr1[i];
  6.   }
  7.   for (let i = 0; i < arr2.length; i++){
  8.     sum2 += arr2[i];
  9.   }
  10.   return sum1 + sum2; // якщо в одну все сумувати, то просто повернути її тут.
  11. }
  12.  
  13. // якщо б знати, що масиви однакової довжини, то точна можна було б їх в одному циклі просумувати, а так, можливо краще у
  14. // двох, як ви й зробили. Бо ж різна длина массивів потребує перевірок, і скоріш ваш код буде більш оптимальним, але це не точно, бо у одному циклі ми пройдемо кількість ітерацій рівну довжині найдовшого массиву.
  15. let length1 = arr1.length;
  16. let length2 = arr2.length;
  17. let maxLength = Math.max(length1, length2);
  18. for (let i = 0; i < maxLength; i++){
  19.   if (i < length1) {
  20.     sum += arr1[i]
  21.   }
  22.   if (i < length2) {
  23.     sum += arr2[i]
  24.   }      
  25. }  
  26. // щоб оптимізувати, краще вирази, що мають бути обчислені виносити з циклів, тобто якщо вираз не буде змінювати значення протягом циклу, то навіщо кожну ітерацію його рахувати - кразе у змінну покласти, та брати звідти без розрахунків.
  27.  
  28. // А що ви думаєте? Чи варто тут намагатися зробити один цикл замість двох?)
  29. // нормальне рішення, доречи ви ж дивилися у кодварс? То навіщо вам ще ревью?!) Там такі зубри  крутими рішеннями діляться, що тільки "повертайся-розумій"!!)
  30. // Гарного коду!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement