이번 글에서는 세 개 이상의 숫자를 입력받아 그중 가장 큰 값을 반환하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.
예를 들어, 입력값이 다음과 같다면 −
4, 6, 7, 2, 3
출력 결과는 다음과 같아야 합니다 −
7
구현 예제
그럼 이 기능을 수행하는 함수의 코드를 직접 작성해 보겠습니다 −
// 스프레드 연산자를 사용해 임의 개수의 인수를 처리
const findGreatest = (...nums) => {
let max = -Infinity;
for(let i = 0; i < nums.length; i++){
if(nums[i] > max){
max = nums[i];
};
};
return max;
};
console.log(findGreatest(5, 6, 3, 5, 7, 5));
출력 결과
콘솔에 출력되는 결과는 다음과 같습니다 −
7
코드 동작 원리
스프레드 연산자(...nums)를 매개변수로 사용하면 함수 호출 시 전달되는 인수의 개수에 상관없이 모든 값을 하나의 배열로 받을 수 있습니다. 덕분에 정확히 세 개의 숫자뿐 아니라 그 이상의 숫자도 유연하게 처리할 수 있습니다.
동작 과정은 다음과 같습니다.
1. 최댓값을 담을 변수 max를 -Infinity(음의 무한대)로 초기화합니다. 이렇게 하면 어떤 숫자가 입력되더라도 비교 기준으로 안전합니다.
2. 반복문으로 배열을 순회하면서 현재 요소가 max보다 크면 max를 해당 값으로 갱신합니다.
3. 순회가 끝나면 갱신된 max, 즉 가장 큰 숫자를 반환합니다.
더 간결한 방법: Math.max 활용
JavaScript에는 최댓값을 계산하는 내장 메서드인 Math.max()가 있습니다. 이를 스프레드 연산자와 함께 사용하면 위 로직을 한 줄로 대체할 수 있습니다.
const findGreatest = (...nums) => Math.max(...nums); console.log(findGreatest(5, 6, 3, 5, 7, 5)); // 7
직접 반복문을 구현하는 방식은 최댓값 탐색 로직을 이해하는 데 도움이 되며, Math.max 방식은 실무에서 더 간결하고 가독성 좋은 코드를 작성할 때 유용합니다.