<문제>
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
'Javascript' 카테고리의 다른 글
Javascript ES6 - 객체지향1 - Constructor (0) | 2022.01.17 |
---|---|
Javascript ES6 - Primitive Type & Reference Type (0) | 2022.01.17 |
Javascript ES6 - Rest parameter (0) | 2022.01.15 |
Javascript ES6 - Default Parameter & Arguments (0) | 2022.01.15 |
Javascript ES6 - Spread Operator (0) | 2022.01.15 |