Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 배열 내 고유 요소 개수 계산하는 방법

배열에 포함된 모든 고유(unique) 요소의 개수를 세는 JavaScript 함수를 작성해야 합니다. 이 함수는 배열의 각 고유 요소가 몇 번 등장하는지 나타내는 객체(object)를 반환해야 합니다.

예를 들어, ["hi", "hello", "hi"]라는 배열이 주어졌다면 결과는 { hi: 2, hello: 1 }이 되어야 합니다.

구현 방법

이 기능은 빈 객체를 하나 만든 뒤, 반복문으로 배열을 순회하면서 각 요소의 등장 횟수를 누적하는 방식으로 간단히 구현할 수 있습니다. 핵심 아이디어는 다음과 같습니다.

  • 결과를 저장할 빈 객체 counts를 생성합니다.
  • for 반복문으로 배열의 모든 요소를 하나씩 확인합니다.
  • 각 요소가 이미 객체에 존재하면 기존 값에 1을 더하고, 존재하지 않으면 1로 초기화합니다. 이때 (counts[arr[i]] || 0) 표현식을 활용하면 코드를 간결하게 유지할 수 있습니다.

예제 코드

실제 구현 코드는 다음과 같습니다.

const arr = ["hi", "hello", "hi"];
const countUnique = arr => {
    const counts = {};
    for (var i = 0; i < arr.length; i++) {
        counts[arr[i]] = 1 + (counts[arr[i]] || 0);
    };
    return counts;
};
console.log(countUnique(arr));

실행 결과

위 코드를 실행하면 콘솔에 다음과 같은 출력이 나타납니다.

{ hi: 2, hello: 1 }

"hi"는 두 번 등장했고 "hello"는 한 번만 등장했기 때문에 위와 같은 결과가 출력됩니다. 이 방식은 배열을 한 번만 순회하면 되므로 시간 복잡도가 O(n)으로 매우 효율적이며, 문자열뿐 아니라 숫자 등 다양한 타입의 배열에도 동일하게 적용할 수 있습니다.