728x90
#문제
문자열을 입력받아 문자열을 구성하는 각 문자(letter)를 키롤 갖는 객체를 리턴해야 합니다. 각키의 값은 해당 문자가 문자열에서 등장하는 횟수를 의미하는 number 타입의 값이어야 합니다.
#입출력예시
let output = countAllCharacters('banana');
console.log(output); // --> {b: 1, a: 3, n: 2}
#내가푼답
for(let i=0; i< str.length; i++){}
여기까지만 감 잡고 더 이상 진행못함....
#풀이
키: 문자열을 구성하는 각 문자
값: 문자가 등장하는 횟수
1.리턴할 객체를 하나 일단 만든다
2.str의 모든 문자열을 순회하는 반복문을 만든다. (banana를 일단 순회해야하니까)
2-1 각 문자를 키로, 값을 0으로 한 객체를 먼저 만든다. { b:0, a:0, n:0}
-> 그 문자가 아직 키로 생성되지 않았을때 -> in
3.다시 순회하면서 문자가 등장할때마다 1씩 증가시킨다.
#정답
function countAllCharacters(str) {
let obj = {};
for(let i=0; i< str.length; i++) {
if(!(str[i] in obj)) {
obj[str[i]] = 0;
}
obj[str[i]]++
}
return obj;
}
728x90
'코플릿 기록 > JavaScript' 카테고리의 다른 글
객체 12번 (속성의 개수)★★ (0) | 2023.01.01 |
---|---|
객체 19번 (extend) ★★★★ (0) | 2022.12.30 |
객체 15번 ★★ (0) | 2022.12.30 |
calculator 구현과제 (0) | 2022.12.27 |
반복문13번 ★★ (0) | 2022.12.21 |