[JS] 배열의 특정 요소들 갯수 구하기

BANGJH·2021년 3월 22일
0

JS ONE PIECE

목록 보기
11/11
post-thumbnail

객체의 key를 기준으로 카운트

const countByKey = (arr, prop) => {
  return arr.reduce((prev, curr) => {
    prev[curr[prop]] = ++prev[curr[prop]] || 1;
    return prev;
  }, {});
};

// ex)
// name을 기준으로 name의 값이 몇 개씩 있는지 카운트해서 객체로 반환.
const result = countByKey(
  [
    { name: 'A', age: '21' },
    { name: 'B', age: '21' },
    { name: 'C', age: '21' },
    { name: 'A', age: '28' },
    { name: 'B', age: '28' },
  ],
  'name'
);

// console.log(result) { A: 2, B: 2, C: 1 }

배열내의 특정 요소가 얼마나 있는지 카운트

const countByElement = (arr, val) => {
  return arr.reduce((a, v) => (v === val ? a + 1 : a), 0);
};

// ex)
// 배열 내의 숫자 2가 2개 있어서 2를 반환.
const result = countByElement([2, 1, 3, 3, 2, 3], 2);
// console.log(result) 2

배열내의 요소들 종류별로 카운트

const countByArray = (arr) => {
  return arr.reduce((prev, curr) => {
    prev[curr] = ++prev[curr] || 1;
    return prev;
  }, {});
};

// ex)
// 배열 내 요소들을 각각 카운트해서 객체로 반환
const result = countByArray(['a', 'b', 'a', 'c', 'a', 'b']);
// console.log(result) { a: 3, b: 2, c: 1 }
profile
안녕하세요 신입 웹개발자입니다.

0개의 댓글