JavaScript - 배열에서 최대, 최소 값 찾기

By JS | Last updated: April 09, 2022

자바스크립트에서 배열의 요소들 중에 최대 값과 최소 값을 찾는 방법을 소개합니다. 간단한 방법으로는 Math 함수를 사용하여 최대, 최소 값을 찾을 수 있습니다. 또는 for 루프를 사용하여 직접 구현할 수도 있습니다.

1. Math.min.apply(), Math.max.apply() : 배열에서 최대, 최소 값 찾기

Math.min.apply(null, array)는 인자로 전달한 array 배열 요소들 중에 최소 값을 리턴합니다. Math.max.apply()도 같은 방식으로 동작하며 최대 값을 리턴합니다.

const arr = [30, 40, 10, 20];

const min = Math.min.apply(null, arr);
const max = Math.max.apply(null, arr);

console.log(min);
console.log(max);

Output:

10
40

2. Math.min(), Math.max() : 배열에서 최대, 최소 값 찾기

min(num1, num2, ....), max(num1, num2, ....)는 인자로 전달된 숫자 중에 최소, 최대 값을 찾아서 리턴합니다. 인자 개수는 제한이 없습니다.

const min = Math.min(10, 20, 30, 40);
const max = Math.max(10, 20, 30, 40);

console.log(min);  // 10
console.log(max);  // 40

이 함수들을 이용하여 배열의 모든 요소를 min(), max()에 전달하면 배열의 최대, 최소 값을 찾을 수 있습니다. 특히, Spread Operator(전개 연산자)를 이용하면 배열의 모든 요소를 쉽게 함수의 인자로 전달할 수 있습니다. Spread Operator는 ...arr와 같은 표현식이며, 배열 arr의 모든 요소를 나열하여 인자로 전달합니다.

아래 예제는 min(), max()와 Spread Operator를 이용하여 최대, 최소값을 찾는 예제입니다.

const arr = [30, 40, 10, 20];

const min = Math.min(...arr);
const max = Math.max(...arr);

console.log(min);
console.log(max);

Output:

10
40

3. for 반복문으로 min, max 함수 구현

아래와 같이 직접 반복문으로 배열을 순회하면서 최소 값과 최대 값을 찾을 수 있습니다. 비교하기 전에 min의 초기값은 Infinity로, max의 초기 값은 -Infinity로 설정하였습니다.

function minOfArray(arr) {
  let min = Infinity;
  for (let i = 0; i < arr.length; i++) {
    if (min > arr[i]) {
      min = arr[i];
    }
  }
  return min;
}

function maxOfArray(arr) {
  let max = -Infinity;
  for (let i = 0; i < arr.length; i++) {
    if (max < arr[i]) {
      max = arr[i];
    }
  }
  return max;
}

const arr = [30, 40, 10, 20];
const min = minOfArray(arr);
const max = maxOfArray(arr);

console.log(min);
console.log(max);

Output:

10
40
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha