글자세기 ('aacbbbbbbbbb');
function 글자세기(글자){
let 결과 = {};
[...글자].forEach(function(a){
//만약에 결과에 a가 있으면 +1해주시고
//없으면 a : 1 집어 넣으세요
if (결과[a] > 0){
결과[a] = 결과[a]+1;
} else {
결과[a] = 1;
}
});
console.log(결과);
}
1. 여기서 push나 append를 쓴 것 도 아닌데, 어떻게 결과라는 변수에 저 값들이 들어가는건가요?ㅠㅠ
(1) 글자세기 ('aacbbbbbbbbb'); 여기 괄호 안에 있는 데이터들이
[...글자] 이렇게 스프레드되서 array로 만들어졌고,
[a,a,c,b,b,b,b,b,b,b]. foreach 이렇게 반복문이 돌아간거죠?
(2) 그 다음
[...글자].forEach(function(a){
}
여기서 저 'a' 라는 파라미터가 [a,a,c,b,b,b,b,b,b,b] 이 어레이 안의 데이터 하나하나를 뜻하는거구요?
(3) 그렇다면,
if (결과[a] > 0) {
결과[a] = 결과[a]+1 ;
}
이거를 풀어쓰자면,
결과[0] > 0 , 결과[1] > 0 , 결과[2] > 0 이런식으로 되는게 맞을까요?
(4) 그런데
let 결과 = {};
이렇게 결과 값은 아직 하나도 채워져 있지 않은데, 어떻게 결과의 0번째 1번째 값을 알 수 있는건가요? 저 경우에 [...글자].foreach 문의 결과가 자동으로 '결과' 변수에 담기게 되는건가요?
이 과정만 풀리면 이해가 될 것 같은데 답답하네요 ㅠ.ㅠ.ㅠ.ㅠ
시간 되실 때 답변 좀 꼭 부탁드립니당 ㅠㅠㅠ