📌 배열의 최댓값, 최솟값 구하기
자바스크립트에서 배열의 최댓값과 최솟값을 구하는 방법에는 아래와 같은 방법이 있다.
- Math.max( ), Math.min( )
- Function.prototype.apply( )
- Spread Operator(전개 연산자)
1️⃣ Math.max( ), Math.min( )
Math.max( )와 Math.min( )는 입력받은 숫자들 중 최댓값과 최솟값을 구해서 리턴하는 함수이다.
이 함수는 여러 개의 파라미터를 전달해서 최댓값과 최솟값을 구할 수 있지만, 배열을 넘길 수는 없다.
따라서, 배열의 최댓값, 최솟값을 구하기 위해서는 Function.prototype.apply( )와 Spread Operator(전개 연산자)를 사용하여 구해야 한다.
const maxValue = Math.max(1, 2, 3, 4, 5);
const minValue = Math.min(1, 2, 3, 4, 5);
console.log('Max : ' + maxValue) // Max : 5
console.log('Min : ' + minValue) // Min : 1
2️⃣ Function.prototype.apply( )
Function.prototype.apply( )는 함수를 호출하는 방법 중의 하나이다.
일반적으로 함수를 호출할 때 '함수명(파라미터)'의 형식으로 호출하지만 apply() 메서드를 호출해서 함수를 호출할 수도 있다. apply() 메서드는파라미터로 함수 내부에서 사용할 this객체와 호출하는 함수로 전달할 파라미터를 입력받는다.
const arr = [1, 2, 3, 4, 5];
const maxValue = Math.max.apply(null, arr);
const minValue = Math.min.apply(null, arr);
console.log('Max : ' + maxValue) // Max : 5
console.log('Min : ' + minValue) // Min : 1
Math.max.apply(null, arr);
첫 번째 파라미터로 Math.max() 내부에서 사용할 this객체를 전달해야 하는데, 예시에서는 따로 this객체를 지정해 줄 필요가 없으므로 null을 전달하였다.
두 번째 파라미터는 Math.max( )로 전달할 파라미터를 배열 형태로 전달하였다.
3️⃣ Spread Operator(전개 연산자)
Spread Operator(전개 연산자)는 ES6 문법으로 '...'으로 표현하며 객체나 배열의 원소를 하나씩 꺼내어서 리턴한다.
const arr = [1, 2, 3, 4, 5];
const maxValue = Math.max(...arr);
const minValue = Math.min(...arr);
console.log('Max : ' + maxValue) // Max : 5
console.log('Min : ' + minValue) // Min : 1
위 예시에서 Math.max(...arr)는 실제로는 Math.max(1, 2, 3, 4, 5)와 같이 실행된다.
'Frontend > JavaScript' 카테고리의 다른 글
[JS] 자바스크립트 배열의 합계, 평균 구하기 (1) | 2022.02.21 |
---|---|
[JS] 배열에서 특정 값 개수 구하기 (0) | 2022.02.19 |
[JS] 마우스 클릭 좌표(위치) 가져오기 (0) | 2022.02.17 |
[JS] 자바스크립트 스크롤바 위치 가져오기 (0) | 2022.02.16 |
[JS] 자바스크립트로 HTML 클래스 다루기(추가, 변경, 제거, 토글) (0) | 2022.02.15 |
최근댓글