Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему тут не выводится максимальное число? Выводится NaN

Front End Ученик (9), на голосовании 1 месяц назад
 const numbers = [3, 5, 7, 2, 8, 10, 6];

console.log(Math.max(numbers))
Голосование за лучший ответ
alexey kolesnikov Мастер (2433) 2 месяца назад
В твоём коде ошибка возникает из-за неправильного использования функции Math.max(). Она не принимает массив как единственный аргумент. Вместо этого, ей нужно передавать элементы массива как отдельные аргументы.
Front EndУченик (9) 2 месяца назад
Спасибо
Мудрец (11805) 2 месяца назад
Проблема в том, что метод Math.max() ожидает в качестве аргументов отдельные числа, а не массив. Однако вы передаёте ему массив, что приводит к некорректной работе метода.

Чтобы передать массив как набор отдельных чисел, можно использовать оператор расширения (spread operator) .... Он «раскрывает» массив в отдельные элементы.

Вот исправленный код:
 const numbers = [3, 5, 7, 2, 8, 10, 6]; 

console.log(Math.max(...numbers));
Здесь оператор ...numbers раскрывает массив в отдельные элементы, и Math.max() может корректно вычислить максимальное число.
Front EndУченик (9) 2 месяца назад
Спасибо
Рустам Абдрашитов Мудрец (10309) 2 месяца назад
 const numbers = [3, 5, 7, 2, 8, 10, 6]; 

const maxNumber = numbers.reduce((max, current) => Math.max(max, current), numbers[0]);

console.log(maxNumber);
Похожие вопросы