Как найти самое большое число в массиве js
Для того, чтобы найти максимальный элемент в массиве, можно воспользоваться не только агрегацией. Давайте обратимся к стандартным возможностям языка и рассмотрим метод 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
Документация:
- Math.max.apply()
- _.max()
Чтобы найти самое большое число в массиве, нужно выполнить агрегацию. Для этого можно использовать цикл или функцию высшего порядка:
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
искать максимальное сортировкой плохая затея.
Еще один способ. Можно использовать метод sort
:
const arr = [1, 5, 0, 3, 5, 8, 9];
const max = arr.sort((a, b) => b - a)[0]; // 9
После сортировки методом sort()
мы берем первый элемент результирующего массива, используя индекс [0]
, и присваиваем его переменной max
.