본문 바로가기
Language/JavaScript

[JavaScript] 배열에서 최대값, 최소값 구하는 방법(ft. Math.(max/min))

by 썸머워즈 2022. 2. 22.
반응형

배열에서도 최대값과 최소값을 구하는 방법에 대해 알아보자.

 

일반적으로 최대, 최소값을 구한다 하면 Math.max() 함수와 Math.min()함수를 사용하고는 하는데,

여기에 배열을 대상으로 사용하게되면 안타깝게도 제대로된 값을 반환하지 않는다.

 

예제를 통해 몇가지 방법에 대해 접해보자.


▷ 예제 1 ) Function.prototype.apply() 사용하기

const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

console.log(Math.max.apply(null, nums)); // 10
console.log(Math.min.apply(null, nums)); // 1

이 방법은 대부분의 브라우저에서 사용이 가능하니 알아두면 좋다.

apply(this, arr) 라는 메서드인데, this를 사용하지 않기 때문에 null을 넣어주었고 호출하는 함수로 전달할 파라미터로 배열을 넣어준 것이다.

 

javascript에서 함수를 호출하는 여러가지 방법중에 하나이며, 자세한 내용은 MDN 홈페이지나 따로 나중에 정리하는 기회를 가지도록 하자.

 

▷ 예제 2 ) 전개 연산자 사용하기

const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

console.log(Math.max(...nums)); // 10
console.log(Math.min(...nums)); // 1

전개 연산자(Spread Operator)는 알다시피 ES6문법이므로 예제1번 보다는 브라우저사양에 제한이있다.

그래도 역시 가독성면에서는 매우 좋다.

 

▷ 예제 3 ) Array.prototype.reduce() 메서드 사용하기

const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

let max = nums.reduce(function(a, b) {
    return Math.max(a, b);
});

console.log(max); // 10

let min = nums.reduce(function(a, b) {
    return Math.min(a, b);
});

console.log(min); // 1

그냥 배열 돌려서 뽑아내는거랑 큰 차이는 없다.

예제 1번과 2번을 애용하도록 하자.


참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/max

 

Math.max() - JavaScript | MDN

Math.max()함수는 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환합니다.

developer.mozilla.org

참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/min

 

Math.min() - JavaScript | MDN

Math.min() 함수는 주어진 숫자들 중 가장 작은 값을 반환합니다.

developer.mozilla.org

반응형


댓글

TOP