Помогите, пожалуйста, правильно написать функций JavaScript
!) Во всех функциях должна быть проверка наличия элементов. Если элементы не передавались в функцию, то нет смысла что-либо считать и можно сразу возвращать ноль. - ???
1) Функция summElementsWorker, должна находить сумму элементов массива и возвращать её (c помощью цикла или метода reduce)
function summElementsWorker(arr) {
var sum = 0;
for (var i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
2) Функция differenceMaxMinWorker для вычисления разницы min\max
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), если элемент чётный, то увеличивайте одну переменную, а если нечётный, то другую. Возвращать разницу элементов. ???
function differenceEvenOddWorker (arr) {
}
4) averageEvenElementsWorker среднее значение чётных элементов. 2 переменные, в которых будут накапливаться сумма чётных элементов и их количество (начальные ноль), цикл для перебора всех элементов (проверка с if), если элемент чётный, то увеличивайте одну переменную на перебираемый элемент, а другую переменную — на единицу. Результат - деление суммы элементов на их количество. ???
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);
}
Вот исправленные и доработанные функции с учетом проверки наличия элементов в массиве:
// 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
В чем вопрос то? Код написан почти везде, а функция которая осталась по сложности легче чем многие написанные