
배열에 있는 값이 몇 번 중복되는지 찾을 때 여러 방법 중 forEach() 함수를 이용하는 법에 대해 정리해보기로 했다.
const arr = [1, 2, 3, 1, 2, 3]
위와 같이 중복된 값을 가지는 배열이 있을 때 각 값이 몇 번 중복되는지 확인하고자 한다.
const arr = [1, 2, 3, 1, 2, 3]
const result = {};
arr.forEach((k) => (result[k] = (result[k] || 0) + 1));
console.log(result);
/*
결과 : {1: 2, 2: 2, 3: 2}
*/
각 값은 2 번씩 중복되는 것을 확인할 수 있다.
result[k] = (result[k] || 0) + 1)
이 코드를 풀어 쓰면 아래와 같다.
if(result[k]) { // 들어오는 값이 result에 속성으로 존재하는 경우
result[k] = result[k] + 1;
} else { // 존재하지 않는 경우
result[k] = 0 + 1;
}