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
'WEB > Java Script' 카테고리의 다른 글
[Java Script] 클래스와 상속 (0) | 2021.04.23 |
---|---|
[Java Script] 객체 생성자/ 프로토타입 공유/ 상속 (0) | 2021.04.23 |
[Java Script] 배열 내장 함수/ reduce 함수로 sum, avg구하기 / 합계 평균 구하기 (0) | 2021.04.23 |
[Java Script] 배열 내장함수/ concat : 배열 합치기/join: 배열의 원소들을 문자열로 만들기 (0) | 2021.04.23 |
[Java Script] 배열 내장함수/ shift : 맨 앞의 원소 없애기/ unshift :맨앞에 값 추가하기/ pop:맨 뒤의 원소 없애기 / push : 맨 뒤에 원소 추가하기 (0) | 2021.04.23 |