Math.min과 Math.max는 간단한 함수입니다. 그러나 reduce 등과 함께 쓰이면 배열의 최댓값을 구할 수 있는 등 유용하게 쓰이기에 꼭 알아 둡시다.
Math.min() 함수는 주어진 숫자들 중 가장 작은 값을 반환합니다.
이 때 min() 함수는 Math 의 정적 메소드이므로, 사용자가 생성한 Math 객체의 메소드로 호출하는 것이 아닌 항상 Math.min() 으로 호출되어야 합니다. (Math 는 생성자가 아닙니다).
아래 수식은 x 와y 중 작은 값을 찾아 z 에 할당 합니다.
var x = 10, y = -20;
var z = Math.min(x, y);
z의 값은 -20이 되겠죠?
Math.min() 함수는 때때로 값에 제한을 둘 때, 즉 항상 기준 보다 작거나 같은 값으로 제한하는 용도로 사용됩니다. 예를 들면,
var x = f(foo);
if (x > boundary) {
x = boundary;
}
위 코드는 다음과 같이 쓸 수 있습니다.
var x = Math.min(f(foo), boundary);
Math.max()함수는 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환합니다.
max () 역시 Math의 정적 메서드이기 때문에 만든 Math 개체의 메서드가 아닌 항상 Math.max ()로 사용해야합니다. (Math는 생성자가 아닙니다).
주의할 점은, 아무 요소도 주어지지 않았다면 -Infinity로 반환하며 한 개 이상의 요소가 숫자로 변환되지 않는다면 NaN로 반환된다는 것입니다.
Math.max() 함수는 요로코롬 쓰입니다.
Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20
reduce()로 숫자 배열의 최대 값을 찾는 데 사용할 수 있습니다.
var arr = [1,2,3];
var max = arr.reduce((a, b) => {
return Math.max(a, b);
});
reduce 함수에 대한 활용법은 다음 글에 있습니다.