본문 바로가기
코플릿 기록/JavaScript

객체 20번 ★★★★

by 뭉지야 2022. 12. 30.
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