[javascript] 배열 순회 시 요소 중복 횟수 세기

자바스크립트에서 배열을 순회하면서 배열 내 요소의 중복 횟수를 세는 방법을 알아보겠습니다.

방법 1: 객체를 활용하여 중복 횟수 세기

const array = [1, 2, 3, 2, 4, 1, 3, 5];
const count = {};

for (let i = 0; i < array.length; i++) {
  const element = array[i];
  if (count[element]) {
    count[element]++;
  } else {
    count[element] = 1;
  }
}

console.log(count);

위 코드에서는 객체를 활용하여 각 요소의 중복 횟수를 저장합니다. 배열을 순회하면서 현재 요소가 이미 count 객체에 존재한다면 중복이므로 카운트를 증가시키고, 존재하지 않는다면 1로 초기화합니다. 순회가 끝난 후 count 객체를 출력하면 각 요소의 중복 횟수를 확인할 수 있습니다.

방법 2: Map을 활용하여 중복 횟수 세기

const array = [1, 2, 3, 2, 4, 1, 3, 5];
const count = new Map();

for (let i = 0; i < array.length; i++) {
  const element = array[i];
  if (count.has(element)) {
    count.set(element, count.get(element) + 1);
  } else {
    count.set(element, 1);
  }
}

console.log(count);

위 코드에서는 Map을 활용하여 중복 횟수를 세는 방법입니다. 객체보다는 맵을 이용하는 것이 중복 횟수를 더 효율적으로 세는 방법입니다. 객체와 달리 맵은 기본적으로 중복된 키값을 허용하고, set() 메소드로 중복 키값을 저장할 수 있습니다.

결론

자바스크립트에서 배열 순회 시 요소의 중복 횟수를 세기 위해서는 객체나 맵을 활용하는 것이 좋습니다. 객체를 사용할 때는 요소를 키값으로 하여 중복 횟수를 저장하고, 맵을 사용할 때는 set() 메소드를 이용하여 중복 횟수를 저장합니다. 이를 통해 배열 내 요소의 중복 횟수를 효율적으로 계산할 수 있습니다.

참고 문서: MDN 문서 - Map