자바스크립트에서 배열 중복 개수 구하기
중복 개수 구하는 방법
- 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
// }
'Javascript' 카테고리의 다른 글
배열 중복 제거하기 (0) | 2024.08.25 |
---|---|
객체 접근 방법 (0) | 2024.08.25 |
현재 달 1일과 마지막일 구하기 (0) | 2024.08.25 |
switch (0) | 2024.08.25 |
반복문 (0) | 2024.08.24 |