Javascript

코딩애플 - Javascript ES6 - Spread, rest 파라미터 연습문제 8번

hyunzxn 2022. 1. 15. 18:07

<문제>

 

counting('aacbbb') 라고 입력하면 콘솔창에

{ a : 2, b : 3, c : 1 }

▲ 이렇게 출력해주는 글자세기() 라는 함수를 만들고 싶습니다. 

쉽게말하자면 입력한단어에 들어있는 알파벳의 갯수를 세어서 오브젝트에 기록해주고 출력까지 해주는 함수입니다. 

글자세기라는 함수를 어떻게 만들면 될까요? 

 


function counting (string) {

    const result = {};
    [...string].forEach( (item) => {
        if (result[item] > 0) {
            result[item] = result[item] + 1;
        } else {
            result[item] = 1;
        }
    });
    console.log(result);

}

counting('aacbbb');

 

1. 우선 결과를 담을 object를 result라는 변수에 담아줍니다.

2. 반복문을 돌려서 해결하면 좋을 것 같습니다. 그런데 string에는 forEach를 사용할 수 없으므로 spread operator를 이용하여 글자를 분리해서 array에 담아줍니다.

3. result 안에 a라는 항목이 있으면 + 1을 해주고 그렇지 않으면 1을 부여해주는 (a: 1  이런 식으로!) 조건문을 사용해줍니다.

4. 반복문이 돌면서 입력된 글자인 aacbbb를 검사하면서 result에 결과를 담아줍니다.

728x90