Top.Mail.Ru
Ответы

Помогите, пожалуйста, правильно написать функций JavaScript

!) Во всех функциях должна быть проверка наличия элементов. Если элементы не передавались в функцию, то нет смысла что-либо считать и можно сразу возвращать ноль. - ???
1) Функция summElementsWorker, должна находить сумму элементов массива и возвращать её (c помощью цикла или метода reduce)

1234567
 function summElementsWorker(arr) {   
  var sum = 0;   
  for (var i = 0; i < arr.length; i++) {   
    sum += arr[i];   
  }   
  return sum;   
} 

2) Функция differenceMaxMinWorker для вычисления разницы min\max

1234567891011121314
 function differenceMaxMinWorker (arr) {   
let min = Infinity;   
let max = -Infinity;   
let array = [1, 2, 3, 4, 5];   
for (let num of array) {   
  if (num < min) {   
    min = num;   
  }   
  if (num > max) {   
    max = num;   
  }   
}   
const difference = Math.abs(max - min);   
} 


3) differenceEvenOddWorker для разницы сумм чётных и нечётных элементов. 2 переменные для накапливания элементов (начальное ноль), перебрать все элементы (проверка if / else), если элемент чётный, то увеличивайте одну переменную, а если нечётный, то другую. Возвращать разницу элементов. ???

123
 function differenceEvenOddWorker (arr) {   
 
} 


4) averageEvenElementsWorker среднее значение чётных элементов. 2 переменные, в которых будут накапливаться сумма чётных элементов и их количество (начальные ноль), цикл для перебора всех элементов (проверка с if), если элемент чётный, то увеличивайте одну переменную на перебираемый элемент, а другую переменную — на единицу. Результат - деление суммы элементов на их количество. ???

12345678910111213
 function averageEvenElementsWorker (arr) {   
let x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];    
var count = 0;   
var summ = 0;   
for (let i = 0; i < x.length; i++) {   
  if (x[i] % 2 == 0) {   
    count += 1;  // Если чётное, считаем сколько чётных цифр   
    summ += x[i];  // Если чётное, считаем сумму чётных   
  }   
}   
var itog = summ / count;    
console.log(itog);   
} 
По дате
По рейтингу
Аватар пользователя
Новичок
4мес

Вот исправленные и доработанные функции с учетом проверки наличия элементов в массиве:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
 // 1. Функция для вычисления суммы элементов массива 
function summElementsWorker(arr) { 
  if (!arr || arr.length === 0) return 0; 
  return arr.reduce((sum, num) => sum + num, 0); 
} 
 
// 2. Функция для вычисления разницы между максимальным и минимальным элементами 
function differenceMaxMinWorker(arr) { 
  if (!arr || arr.length === 0) return 0; 
  let min = Math.min(...arr); 
  let max = Math.max(...arr); 
  return max - min; 
} 
 
// 3. Функция для вычисления разницы сумм четных и нечетных элементов 
function differenceEvenOddWorker(arr) { 
  if (!arr || arr.length === 0) return 0; 
  let sumEven = 0; 
  let sumOdd = 0; 
   
  for (let num of arr) { 
    if (num % 2 === 0) { 
      sumEven += num; 
    } else { 
      sumOdd += num; 
    } 
  } 
   
  return sumEven - sumOdd; 
} 
 
// 4. Функция для вычисления среднего значения четных элементов 
function averageEvenElementsWorker(arr) { 
  if (!arr || arr.length === 0) return 0; 
  let sumEven = 0; 
  let countEven = 0; 
   
  for (let num of arr) { 
    if (num % 2 === 0) { 
      sumEven += num; 
      countEven++; 
    } 
  } 
   
  return countEven === 0 ? 0 : sumEven / countEven; 
} 
 
// Тестовые примеры 
console.log(summElementsWorker([1, 2, 3, 4, 5])); // 15 
console.log(differenceMaxMinWorker([1, 2, 3, 4, 5])); // 4 
console.log(differenceEvenOddWorker([1, 2, 3, 4, 5])); // 2 
console.log(averageEvenElementsWorker([1, 2, 3, 4, 5, 6])); // 4  
Аватар пользователя
Просветленный
4мес

В чем вопрос то? Код написан почти везде, а функция которая осталась по сложности легче чем многие написанные