Javascript

배열 중복 카운트

minsun309 2024. 8. 25. 12:29

자바스크립트에서 배열 중복 개수 구하기

중복 개수 구하는 방법

  • forEach()
const array = ['A', 'B', 'C', 'A']

const result = {};
array.forEach((x) => {
  result[x] = (result[x] || 0) + 1;
})

// 결과
// {
//  A: 2,
//  B: 1,
//  C: 1
// }

 

result[x] = (result[x] || 0) + 1 설명

처음 A가 들어오면 result[A] 가 없기 때문에 result[x] = 0 + 1; 여기로 가서 A : 1을 만든다. 순회하다가 중복되는 마지막 A 가 들어오면 이미 result[A]가 존재하기 때문에 result[x] = result[x] + 1 식에 따라 1을 더해 2로 만든다.

if(result[x])	{	
   result[x] = result[x] + 1;
} else {
  result[x] = 0 + 1;
}

 

  • reduce()

배열의 각 요소를 순회하며 callback함수의 실행 값을 누적 하여 하나의 결과 값을 반환한다.

문법 : reduce(callbackFn, initialValue) ( initialValue는 optional한 값 )

const result = array.reduce((accumulator, currentValue) => {
  accumulator[currentValue] = (accumulator[currentValue] || 0) + 1;
  return accumulator;
},{});

// 결과
// {
//  A: 2,
//  B: 1,
//  C: 1
// }