자바스크립트 배열의 최소 값 및 인덱스 찾기

배열은 자바스크립트에서 가장 많이 사용되는 데이터 구조 중 하나입니다. 배열에는 여러 가지 값이 들어갈 수 있고, 이 값들을 처리하고 조작하는 것은 프로그래밍에서 빈번하게 이루어지는 작업입니다. 이 중에서도 배열 내에서 최소 값과 그 값의 인덱스를 찾는 작업은 자주 사용되는 문제 중 하나입니다.

이번 블로그 포스트에서는 자바스크립트에서 배열의 최소 값과 그 값의 인덱스를 찾는 방법을 소개하겠습니다.

1. Math.minArray.indexOf를 사용하는 방법

const numbers = [7, 5, 2, 9, 1, 3];

const minValue = Math.min(...numbers);
const minIndex = numbers.indexOf(minValue);

console.log(`Minimum value: ${minValue}`);
console.log(`Index of minimum value: ${minIndex}`);

위의 예시 코드에서 Math.min 함수를 사용하여 배열 numbers의 최소 값을 구하고, Array.indexOf 메서드를 사용하여 최소 값의 인덱스를 찾았습니다. Math.min(...numbers)는 전개 구문 (...)을 사용하여 배열의 값들을 인자로 전달하고, Math.min 함수는 최소 값을 반환합니다. Array.indexOf(minValue)는 배열에서 첫 번째로 나오는 minValue의 인덱스를 반환합니다.

이 방법은 간단하고 직관적이지만, 배열 안에 중복되는 최소 값이 있다면 첫 번째로 찾는 값의 인덱스만을 반환합니다.

2. reduce 메서드를 사용하는 방법

const numbers = [7, 5, 2, 9, 1, 3];

const { minValue, minIndex } = numbers.reduce((acc, cur, index) => {
  if (cur < acc.minValue) {
    return { minValue: cur, minIndex: index };
  }
  return acc;
}, { minValue: Infinity, minIndex: -1 });

console.log(`Minimum value: ${minValue}`);
console.log(`Index of minimum value: ${minIndex}`);

위의 예시 코드에서 reduce 메서드를 사용하여 배열 numbers를 순회하면서 최소 값을 찾고 그에 해당하는 인덱스를 구했습니다. reduce 메서드에서 초기값으로 { minValue: Infinity, minIndex: -1 }를 설정하고, 현재 값과 이전까지의 최소 값과 비교하여 더 작은 값과 그에 해당하는 인덱스를 반환하도록 로직을 작성하였습니다.

이 방법은 배열 안에 중복되는 최소 값이 있어도 처음 찾은 값의 인덱스를 반환합니다.

마무리

이 글에서는 자바스크립트에서 배열의 최소 값과 그 값의 인덱스를 찾는 방법을 두 가지 소개했습니다. Math.minArray.indexOf를 사용하는 방법은 간단하고 직관적이지만, 중복되는 최소 값이 있을 경우에는 첫 번째만을 반환합니다. reduce 메서드를 사용하는 방법은 중복되는 최소 값이 있을 때에도 모두 찾을 수 있습니다.

최소 값과 인덱스를 찾는 작업은 프로그래밍에서 주로 사용되는 작업 중 하나이며, 위에서 소개한 방법들은 다양한 상황에서 유용하게 사용될 수 있습니다. 각 상황에 맞게 적절한 방법을 선택하여 사용해보세요.