배열 내장함수 reduce 다른예시

4440 단어 JavaScriptJavaScript

예시)

const alps = ["a", "a", "a", "a", "a", "b", "b", "c", "d", "d", "e", "e", "e"];

const counts = alps.reduce((acc, current) => {
  if (acc[current]) {
    acc[current] += 1;
  } else {
    acc[current] = 1;
  }
  return acc;
}, {});

console.log(counts);

acc[current]이 있다면 acc[current] = acc[current] + 1 이 실행되고
아니라면 acc[current] = 1; 로 표시된다.

즉, 같은 원소의 갯수를 세고 출력하는 로직이다.
그리고 최초 값은 빈 객체 {}로 되어있는데 비어있는 객체 안에 'a'가 없고, 없으니까 else 로 동작해 1이 들어가고 그 다음 'a' 를 찾게 되는 것.
그러므로 출력되는 것은

{a: 5, b: 2, c: 1, d: 2, e: 3}
a: 5
b: 2
c: 1
d: 2
e: 3

처음에는 뭔가 이해가 잘 안되서 2, 3번 다시 보면서 이해하려고 했다.

좋은 웹페이지 즐겨찾기