WEB/Java Script

[Java Script] 배열 내장함수 / reduce : 배열안에 알파벳이 몇개씩 들어있는지 확인하기

자바칩 프라푸치노 2021. 4. 23. 19:21
const alphabets = ['a','a','a','b','b','c','d','d','e']
const counts = alphabets.reduce((acc, current)=> {
  if(acc[current]){
    // acc안에 current가 있냐
    acc[current] += 1;
  }
  else {
    acc[current] = 1;
  }
  return acc;
}, {})

console.log(counts);

기본값 비어있는 객체가 acc 이고 current 는 배열의 첫번째 값이다

if문을 통해 비어있는 객체인 acc에 'a'가 있는지 확인한다.

비어있으니까 없다. 그러면 else문을 통해 acc[a]를 1로 만든다

두번째 루프를 돌면 acc가 acc에 a에 1이 들어가있는 상태이고 current는 a이다

그러면 if문을 통해 acc에 a가 있는지 확인한다.

있으니까 acc의 a는 2가 된다...

이런식으로 돌아가서 이 배열안에 알파벳이 몇개씩 들어있는 지 확인한다.

728x90