자바스크립트 배열의 최대값과 최소값

자바스크립트 (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 배열을 반복하면서 각 원소를 비교하고, maxNumberminNumber를 업데이트하여 최대값과 최소값을 구합니다.

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()은 동작하지 않을 수 있으니 주의해야 합니다.