원본: What are Math.min() and Math.max() in JavaScript?
자바스크립트에서는 다음을 사용할 수 있습니다:
- Math.min(): n 개의 요소 중 최소값을 찾기
- Math.max(): n 개의 요소 중 최대값을 찾기
Table of Contents
문법 구문
Math.min(...numbers);
Math.max(...numbers);
두 메소드 모두 number 타입의 값을 매개변수로 받아 (1, 2)
, (1, 2, 3)
형태로 입력할 수 있습니다.
또한 스프레드 연산자를 통해 (...numbers)
와 같은 형식으로 입력할 수도 있습니다.
n 개 숫자의 최소값(min) 찾기
다음의 예제를 개발자 도구를 활용하여 실행하고 console.log() 메소드를 통해 결과를 출력하면 다음과 같은 화면을 볼 수 있습니다:
const a = 10;
const b = 20;
const min = Math.min(a, b);
console.log(`Min of ${a} and ${b} is ${min}`);
Math.min() 메소드는 매개변수로 두 개의 숫자를 넣을 수도 있지만 더 많은 숫자를 전달할 수 있습니다.
하지만 숫자로 변환할 수 없는 매개변수가 하나라도 있다면 메소드는 NaN을 리턴합니다.
만약 매개변수를 전달하지 않으면 Infinity를 리턴하고 하나의 매개변수만 전달하면 그 값과 Infinity를 비교해 더 작은 값인 전달된 값을 리턴합니다.
n 개 숫자의 최대값(max) 찾기
const a = 10;
const b = 20;
const max = Math.max(a, b);
console.log(`Max of ${a} and ${b} is ${max}`);
Math.max() 메소드는 min() 메소드와 마찬가지로 0개 이상의 number 타입 매개변수를 전달할 수 있습니다.
또한 숫자로 변환할 수 없는 매개변수가 있는 경우 NaN을 리턴하고, 매개변수를 전달하지 않은 경우 -Infinity를 리턴합니다.
이 메소드에 하나의 매개변수만 전달할 경우 -Infinity와 비교해 더 큰 값을 리턴하므로 전달된 매개변수가 리턴됩니다.
배열의 min, max 얻기
이 메소드는 0개 이상의 매개변수를 넘겨받을 수 있게 설계되어 매개변수의 갯수에 제한을 두지 않습니다.
따라서 number 타입으로 구성된 배열에 스프레드 연산자를 사용하면 배열의 최소값과 최대값을 구할 수 있습니다.
먼저 배열의 최소값을 구하는 예제 코드입니다:
const arr = [1, 2, 3, 4, 5];
console.log("Min value of the array is", Math.min(...arr));
다음으로 배열의 최대값을 구하는 예제 코드입니다:
const arr = [1, 2, 3, 4, 5];
console.log("Max value of the array is", Math.max(...arr));
정리
이 포스트에서는 Math 객체의 최소값, 최대값을 찾는 메소드와 사용 방법에 대해 알아봤습니다.
min() 메소드:
- 0 ~ n 개의 요소 중에서 최소값을 구하는 메소드
- 기본적으로 Infinity와 모든 요소를 비교해 가장 작은 값을 검색
- 매개변수를 전달하지 않으면 Infinity 리턴
- 매개변수를 하나만 전달하면 Infinity와 비교해 더 작은 값인 전달된 값을 리턴
- number 타입으로 변환할 수 없는 매개변수가 포함된 경우 NaN 리턴
max() 메소드:
- 0 ~ n 개의 요소들 중 최대값을 찾는 메소드
- 기본적으로 -Infinity를 주어진 요소들과 비교해 가장 큰 값을 검색
- 매개변수를 전달하지 않으면 -Infinity 리턴
- 하나의 매개변수만 전달하면 -Infinity와 비교하여 더 큰 숫자인 전달된 값을 리턴
- min() 메소드와 동일하게 숫자로 변환할 수 없는 매개변수가 존재하는 경우 NaN 리턴