Как найти самое большое число в массиве js

Ответы
Аватар пользователя Maksim Litvinov
Maksim Litvinov
18 ноября 2021

Чтобы найти самое большое число в массиве, нужно выполнить агрегацию. Для этого можно использовать цикл или функцию высшего порядка:

const findMax = (numbers) => {
  // Если массив пустой, у него нет максимального элемента
  if (numbers.length === 0) {
    return null;
  }
  // Выполняем агрегацию
  return numbers.reduce(
    (acc, number) => (number > acc ? number : acc),
    // Сначала принимаем за максимальное первый элемент массива 
    numbers[0]
  );
};

findMax([1, 0, -5, 40, 10, -100, 41]); // 41
0 0
Аватар пользователя Виктория Аблаева
Виктория Аблаева
19 октября 2022

Для того, чтобы найти максимальный элемент в массиве, можно воспользоваться не только агрегацией. Давайте обратимся к стандартным возможностям языка и рассмотрим метод Math.max.apply():

const numbers = [-94, 87, 12, 0, -67, 32];
const maxValue = Math.max.apply(null, numbers);
//обратите внимание, что в записи данного метода обязателен null. 
//Если забыть в записи данного выражения null, то в переменную maxValue вернётся -Infinity.
console.log(maxValue); // => 87

Есть ещё более хитрый способ использовать метод Math.max():
Для этого вспомним про spread оператор.

const numbers = [-94, 87, 12, 0, -67, 32];
const maxValue = Math.max(...numbers);
console.log(maxValue); // => 87

И невозможно не упомянуть про библиотеку Lodash с методом _.max():

const numbers = [-94, 87, 12, 0, -67, 32];
const maxValue = _.max(numbers);
console.log(maxValue); // => 87

Документация:

0 0
Добавьте ваш ответ

Рекомендуемые курсы

состояние
JSX
компоненты
производительность
26 часов
Посмотреть
классы
инкапсуляция
контекст
прототипы
15 часов
Посмотреть
промисы
event loop
обработка ошибок
таймеры
18 часов
Посмотреть