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 객체
- 두 번째 파라미터: 호출할 함수로 전달할 파라미터들을 배열 형태로 받습니다.
위 예제를 보면,
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(전개 연산자) 사용
Spread Operator(전개 연산자)는 ES6 문법으로 '...' 이렇게 점 3개로 표현하고, 객체나 배열의 원소들을 하나씩 꺼내어서 펼쳐서 리턴한다.
즉, Math.max(...numbers)와 같이 작성해주면 실제로는 Math.max(5,6,2,3,7)와 같이 실행되게 됩니다.