По максимуму: использование Math.min и .max

По максимуму: использование Math.min и .max

От автора: поиск минимума и максимума в наборе чисел – обычная задача в программировании. В JavaScript для этого вполне можно использовать математические операторы или даже серию условий if, однако функция Math.max (и противоположная ей Math.min) намного эффективнее и точнее.

Math.max отличается от самописных функций тем, что она встроенная и ее можно сразу же использовать. Из набора аргументов данная функция всегда возвращает самое большое число. Например, в консоли:

Если в аргументах переданы не числа, результат будет Nan (Not A Number, для новичков эта тема вообще темный лес). Также Math.max может принимать переменные и свойства объекта:

Единственное, что не умеет эта функция – автоматически искать максимальное значение в массиве. Здесь традиционно нужно использовать цикл и сравнивать каждое значение, сохраняя большее из них. Для браузеров с поддержкой ES6 оператор spread еще короче:

Math.max часто используют для сравнения типа «или». Например, если вы берете размеры экрана:

Переменная screenWidth, назначаемая через let, должна быть числом: либо ширина экрана (если тест провалился, и это не число), либо 0.

Достать до дна

Math.min работает наоборот: среди значений .min находит минимальное.

Math.min часто используют для установки или определения граничных условий. Например, у нас есть мяч, прыгающий внутри прямоугольной области. Правая сторона прямоугольника равна 500px. При соприкосновении необходимо, чтобы правая сторона мяча (ball.right) не выходила за пределы правой стороны прямоугольника (500).

Также можно использовать оператор троеточия для «распространения» значений в массиве внутри функции Math.min. Дан массив bugSizes, нужно найти самое маленькое насекомое:

Или можно использовать apply (поддержка которого намного лучше):

Как и троеточие, apply можно использовать с Math.max.

Источник: //thenewcode.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: