객체의 key를 기준으로 카운트
const countByKey = (arr, prop) => {
return arr.reduce((prev, curr) => {
prev[curr[prop]] = ++prev[curr[prop]] || 1;
return prev;
}, {});
};
const result = countByKey(
[
{ name: 'A', age: '21' },
{ name: 'B', age: '21' },
{ name: 'C', age: '21' },
{ name: 'A', age: '28' },
{ name: 'B', age: '28' },
],
'name'
);
배열내의 특정 요소가 얼마나 있는지 카운트
const countByElement = (arr, val) => {
return arr.reduce((a, v) => (v === val ? a + 1 : a), 0);
};
const result = countByElement([2, 1, 3, 3, 2, 3], 2);
배열내의 요소들 종류별로 카운트
const countByArray = (arr) => {
return arr.reduce((prev, curr) => {
prev[curr] = ++prev[curr] || 1;
return prev;
}, {});
};
const result = countByArray(['a', 'b', 'a', 'c', 'a', 'b']);