Как найти максимальное число в массиве js
Перейти к содержимому

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

  • автор:

JS максимальное число

Чтобы найти максимальное число в JavaScript используйте Math.max . Смотрите пример:

console.log(Math.max(10, 45, 50, 344, 30));

Результат выполнения кода:

Максимальный элемент в массиве через apply

Хитрым путем можно найти максимальное значение массива, используя Math.max в связке с методом apply :

let arr = [10, 45, 50, 344, 30]; console.log(Math.max.apply(null, arr));

Результат выполнения кода:

Максимальный элемент в массиве через spread

Использование метода apply для нахождения минимального элемента в массиве считается устаревшим с появлением оператора spread. Давайте посмотрим пример:

let arr = [10, 45, 50, 344, 30]; console.log(Math.max(. arr));

Результат выполнения кода:

Смотрите также

  • урок
    нахождение минимального числа

Максимальное число в массиве, как правильнее?

Работает все ок, но как правильно будет?
1. Присваивать минимальному значению 0.
2. Или присваивать минимальному значению первый елемент массива тобиш list[0].

  • Вопрос задан более трёх лет назад
  • 35019 просмотров

Комментировать
Решения вопроса 2
Сергей Соколов @sergiks Куратор тега JavaScript

Конечно же, второй вариант: list[0] .
Доказательство: найти максимум в массиве отрицательных чисел.

А быстрее встроенным методом Math.max():
Math.max.apply(null, list)

Ответ написан более трёх лет назад
Нравится 6 2 комментария
SlideUp @SlideUp Автор вопроса
Еще не дошёл до такого, но спасибо, буду иметь ввиду!

viewDidLoad

Valentin Khokhlov @viewDidLoad
apply уже не нужен)
Math.max(. list) // es2015+

profesor08

profesor08 @profesor08 Куратор тега JavaScript

function max(list) < return list.reduce((a, b) =>a > b ? a : b); >
function max(list) < let max = list[0]; list.forEach(function(e) < if (e >max) max = e; >); return max; >

Ответ написан более трёх лет назад
Нравится 2 7 комментариев
Сергей Соколов @sergiks Куратор тега JavaScript
Ещё так можн )

function maxElement (list) < return list.sort((a,b) =>b-a)[0]; >

Непонятно, зачем – раз уж позволили себе «сладкое» использование каких-то встроенных методов (reduce(), sort(), forEach()), то почему не взять сразу очевидный и предназначенный для задачи )

На собеседовании могут попросить написать такую функцию без использования нативных функций.

SlideUp @SlideUp Автор вопроса
Сергей Соколов, У меня что-то башка задымилась )
Сергей Соколов @sergiks Куратор тега JavaScript

SlideUp, без паники. Тут сортируем массив по убыванию и берём самый первый элемент – он и будет наибольшим значением.

Методу сортировки массива .sort() надо скормить функцию f( a, b) , которая сравнив два аргумента вернёт 1, –1 или 0, которые определяют как их в сортированной последовательности расположить.

Для чисел проще всего просто вычитание сделать. Если два числа равны, вернёт 0. Если одно больше другого – положительное, если наоборот отрицательное, как и надо для сортировки.

(a,b) => b — a это просто короткая запись определения функции от аргументов (a,b) которая возвращает значение b-a , т.е. это то же самое, что function(a, b)

Максимальное и минимальное значение в массиве

потому что Вы сравниваете два соседних элемента, а значит в min и max получите два последних элемента массива. чтобы заставить этот код работать как надо, сравнивайте каждый элемент с min и с max но, мнится мне, существует более элегантное решение.

3 апр 2012 в 14:52

8 ответов 8

Сортировка: Сброс на вариант по умолчанию

Во имя Джавахарлала Неру, зачем такие сложности?!

>>> Math.min.apply(null, [1,3,5,-1,8,0]) -1 >>> Math.max.apply(null, [1,3,5,-1,8,0]) 8 

Отслеживать
ответ дан 3 апр 2012 в 15:22
2,449 1 1 золотой знак 16 16 серебряных знаков 15 15 бронзовых знаков
ахаха, дико плюсую! недавно занялся js, про прототипы знаю, а про такие банальности нет!
3 апр 2012 в 15:25

а подкинете ссылку? чтоб я разобрался в этих строках и возможно тоже посмеялся 😉 или хоть скажите что почитать)

3 апр 2012 в 15:58
4 апр 2012 в 5:12
более короткий в ES2015: Math.max(. arr)
4 дек 2017 в 17:07

Да, но только есть один очень интересный нюансик. Всё бы хорошо, когда массив небольшой, но как только массив огромен, например о миллионе элементов, тогда Chrome, например, Вам гневно скажет, что Uncaught RangeError: Maximum call stack size exceeded! Потому что apply создаёт стэк непомерных размеров. И тогда в этом случае используем стандартные средства))

Как найти самое большое число в массиве 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()

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 

05 апреля 2023

Еще один способ. Можно использовать метод sort :

const arr = [1, 5, 0, 3, 5, 8, 9]; const max = arr.sort((a, b) => b - a)[0]; // 9 

После сортировки методом sort() мы берем первый элемент результирующего массива, используя индекс [0] , и присваиваем его переменной max .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *