JavaScript предоставляет несколько методов для эффективного поиска минимального, максимального и среднего значений в массиве. В этой статье мы рассмотрим несколько подходов с примерами кода для выполнения этих операций, что позволит вам выбрать наиболее подходящий метод для ваших конкретных случаев использования.
Метод 1: использование функций Math.min() и Math.max()
Пример кода:
const numbers = [4, 2, 9, 7, 5];
const min = Math.min(...numbers);
const max = Math.max(...numbers);
console.log("Minimum:", min); // Output: Minimum: 2
console.log("Maximum:", max); // Output: Maximum: 9
Объяснение:
Функция Math.min()возвращает наименьшее число среди предоставленных аргументов, а Math.max()возвращает наибольшее число. Используя оператор распространения (...), мы можем передавать элементы массива в качестве отдельных аргументов этим функциям, что позволяет нам находить минимальные и максимальные значения.
Метод 2: использование Array.prototype.reduce()
Пример кода:
const numbers = [4, 2, 9, 7, 5];
const min = numbers.reduce((a, b) => Math.min(a, b));
const max = numbers.reduce((a, b) => Math.max(a, b));
const sum = numbers.reduce((a, b) => a + b);
const average = sum / numbers.length;
console.log("Minimum:", min); // Output: Minimum: 2
console.log("Maximum:", max); // Output: Maximum: 9
console.log("Average:", average); // Output: Average: 5.4
Объяснение:
Метод reduce()применяет функцию к каждому элементу массива, накапливая одно значение. В этом случае мы используем reduce(), чтобы найти минимальное и максимальное значения, сравнивая каждый элемент с накопленным значением. Кроме того, мы вычисляем сумму всех чисел и делим ее на длину массива, чтобы получить среднее значение.
Метод 3: использование пользовательской функции
Пример кода:
const numbers = [4, 2, 9, 7, 5];
function findMinMaxAverage(arr) {
let min = Infinity;
let max = -Infinity;
let sum = 0;
for (let i = 0; i < arr.length; i++) {
const num = arr[i];
sum += num;
if (num < min) {
min = num;
}
if (num > max) {
max = num;
}
}
const average = sum / arr.length;
return { min, max, average };
}
const { min, max, average } = findMinMaxAverage(numbers);
console.log("Minimum:", min); // Output: Minimum: 2
console.log("Maximum:", max); // Output: Maximum: 9
console.log("Average:", average); // Output: Average: 5.4
Объяснение:
В этом подходе мы определяем специальную функцию под названием findMinMaxAverage(), которая выполняет итерацию по массиву, обновляя при необходимости минимальное и максимальное значения и вычисляя сумму. Наконец, мы делим сумму на длину массива, чтобы получить среднее значение.