Javascript에서 배열의 여러 원소들 중에서 최댓값, 최솟값을 구하는 방법을 정리해보자.
0. Math.max(), Math.min() 이란?
1. Function.prototype.apply() 사용
2. Spread Operator 사용
0. Math.max(), Math.min() 이란?
Math.max()와 Math.min()은 파아리터로 입력받은 '숫자'들 중 최대값과 최소값을 구해서 리턴하는 함수이다.
그렇다면, '배열'에 담긴 여러 숫자 중 최소값과 최대값을 구하려면 어떻게 해야할까?
배열에 담긴 원소들을 하나씩 꺼내서, Math.max()함수와 Math.min()함수의 파라미터로 전달하면 된다.
이렇게 하기 위해서는 크게 두 가지 방법을 사용할 수 있다.
- Function.prototype.apply() 메소드를 사용
- Spread Operator(전개 연산자)를 사용
1. Function.prototype.apply() 사용
- JavaScript에서 apply() 메소드는 함수를 호출하는 또 다른 방법 중 하나
- 일반적으로는 함수를 호출할 때 함수명(파라미터)와 같은 형식을 사용하지만, apply() 메소드를 사용하면 함수를 호출할 수 있다.
- apply() 메소드는 두 개의 파라미터를 받는다.
- 첫 번째 파라미터: 함수 내에서 사용할 this 객체
- 두 번째 파라미터: 호출할 함수로 전달할 파라미터들을 배열 형태로 받습니다.
const numbers = [5, 6, 2, 3, 7];
const max = Math.max.apply(null, numbers);
console.log(max);
// Expected output: 7
const min = Math.min.apply(null, numbers);
console.log(min);
// Expected output: 2
위 예제를 보면,
Math.max.apply(null,numbers);
Math.max() 함수의 apply() 메소드를 호출하고 있다.
- apply() 메소드의 첫 번째 파라미터
- Math.max() 함수 내부에서 사용할 수 있는 this객체 전달
- 따로 this 객체를 지정해줄 필요가 없으면 null을 전달
- apply() 메소드의 두 번째 파라미터
-
- Math.max() 함수로 전달할 파라미터를 배열 형태로 넣어준다.
- Math.max() 함수에 전달할 파라미터 5개 (1,2,3,4,5)를 배열 형태로 만들어 전달(numbers)
=> Math.max(), Math.min() 함수에 배열의 원소들을 풀어서 전달하기 위해
apply() 메소드를 활용한 것
https://hianna.tistory.com/487
[Javascript] 배열에서 최대값, 최소값 구하기
Javascript 배열의 여러 원소들 중 최대값, 최소값을 구하는 방법을 정리합니다. 1. Math.max(), Math.min() 소개 2. Function.prototype.apply() 사용하기 3. Spread Operator(전개 연산자) 사용하기 1. Math.max(), Math.min()
hianna.tistory.com
2. Spread Operator(전개 연산자) 사용
const numbers = [5, 6, 2, 3, 7];
const maxValue = Math.max(...numbers);
const minValue = Math.min(...numbers);
console.log(max);
// Expected output: 7
console.log(min);
// Expected output: 2
Spread Operator(전개 연산자)는 ES6 문법으로 '...' 이렇게 점 3개로 표현하고, 객체나 배열의 원소들을 하나씩 꺼내어서 펼쳐서 리턴한다.
즉, Math.max(...numbers)와 같이 작성해주면 실제로는 Math.max(5,6,2,3,7)와 같이 실행되게 됩니다.