자바스크립트 최대값 최소값 (Math.min Math.max)

원본: What are Math.min() and Math.max() in JavaScript?

자바스크립트에서는 다음을 사용할 수 있습니다:

  • Math.min(): n 개의 요소 중 최소값을 찾기
  • Math.max(): n 개의 요소 중 최대값을 찾기

문법 구문

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 예제

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 예제

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));
배열의 min 구하기

다음으로 배열의 최대값을 구하는 예제 코드입니다:

const arr = [1, 2, 3, 4, 5];

console.log("Max value of the array is", Math.max(...arr));
배열의 max 구하기

정리

이 포스트에서는 Math 객체의 최소값, 최대값을 찾는 메소드와 사용 방법에 대해 알아봤습니다.

min() 메소드:

  • 0 ~ n 개의 요소 중에서 최소값을 구하는 메소드
  • 기본적으로 Infinity와 모든 요소를 비교해 가장 작은 값을 검색
  • 매개변수를 전달하지 않으면 Infinity 리턴
  • 매개변수를 하나만 전달하면 Infinity와 비교해 더 작은 값인 전달된 값을 리턴
  • number 타입으로 변환할 수 없는 매개변수가 포함된 경우 NaN 리턴

max() 메소드:

  • 0 ~ n 개의 요소들 중 최대값을 찾는 메소드
  • 기본적으로 -Infinity를 주어진 요소들과 비교해 가장 큰 값을 검색
  • 매개변수를 전달하지 않으면 -Infinity 리턴
  • 하나의 매개변수만 전달하면 -Infinity와 비교하여 더 큰 숫자인 전달된 값을 리턴
  • min() 메소드와 동일하게 숫자로 변환할 수 없는 매개변수가 존재하는 경우 NaN 리턴

관련 글