자바스크립트 (JavaScript)는 기본적인 배열 조작과 관련된 여러 유용한 함수를 제공합니다. 이 중에서 배열에서 최대값과 최소값을 찾는 방법은 자주 사용됩니다. 이번 블로그 포스트에서는 자바스크립트에서 배열의 최대값과 최소값을 찾는 여러 가지 방법과 예제 코드를 살펴보도록 하겠습니다.
1. Math.max()
와 Math.min()
Math.max()
와 Math.min()
은 자바스크립트의 전역 객체인 Math
의 메소드로, 인자로 받은 값들 중에서 각각 최대값과 최소값을 반환합니다. 이를 활용하여 배열의 최대값과 최소값을 찾을 수 있습니다.
const numbers = [4, 2, 9, 5, 1];
const maxNumber = Math.max(...numbers);
const minNumber = Math.min(...numbers);
console.log("최대값:", maxNumber); // 결과: 9
console.log("최소값:", minNumber); // 결과: 1
위 예제 코드에서 Math.max(...numbers)
는 배열 numbers
의 원소를 전개 연산자(...
)를 사용하여 인자로 전달하고, 이를 통해 최대값을 반환합니다. 마찬가지로 Math.min()
도 동일한 방식으로 동작합니다.
2. 반복문을 통한 검색
또 다른 방법은 배열을 반복하면서 각 원소를 비교하여 최대값과 최소값을 찾는 것입니다. 이를 위해 for
루프나 forEach()
메소드를 사용할 수 있습니다.
const numbers = [4, 2, 9, 5, 1];
let maxNumber = numbers[0];
let minNumber = numbers[0];
for (let i = 1; i < numbers.length; i++) {
if (numbers[i] > maxNumber) {
maxNumber = numbers[i];
}
if (numbers[i] < minNumber) {
minNumber = numbers[i];
}
}
console.log("최대값:", maxNumber); // 결과: 9
console.log("최소값:", minNumber); // 결과: 1
위 예제 코드에서 numbers
배열을 반복하면서 각 원소를 비교하고, maxNumber
와 minNumber
를 업데이트하여 최대값과 최소값을 구합니다.
3. reduce()
메소드를 활용
Array의 reduce()
메소드를 활용하면 배열의 원소를 하나씩 순회하면서 누적된 결과를 반환할 수 있습니다. 이를 이용하여 배열의 최대값과 최소값을 찾을 수 있습니다.
const numbers = [4, 2, 9, 5, 1];
const maxNumber = numbers.reduce((max, num) => {
if (num > max) {
return num;
} else {
return max;
}
}, numbers[0]);
const minNumber = numbers.reduce((min, num) => {
if (num < min) {
return num;
} else {
return min;
}
}, numbers[0]);
console.log("최대값:", maxNumber); // 결과: 9
console.log("최소값:", minNumber); // 결과: 1
위 예제 코드에서 reduce()
메소드를 사용하여 numbers
배열의 원소를 하나씩 비교하고 누적된 결과를 반환합니다. 초기값으로 numbers[0]
을 설정하여 시작합니다.
이와 같이 다양한 방법으로 자바스크립트에서 배열의 최대값과 최소값을 찾을 수 있습니다. 각각의 방법에는 장단점이 있으니 상황에 따라 적합한 방식을 선택하여 사용하시면 됩니다.
추가로, 배열에 숫자 외에 다른 타입 (문자열, 객체 등)의 값이 포함되어 있는 경우 reduce()
메소드와 Math.max()
, Math.min()
은 동작하지 않을 수 있으니 주의해야 합니다.