Retrospection/Sprint

4. 객체 11~13

카트먼 2020. 7. 12. 14:45

11.  객체의 키 값 쌍을 문자열로 리턴하는 법 

function printObject(obj) {
    //객체 안에 정의된 키와 값 쌍을 조합한 문자열 리턴 
    //문자열은 한줄에 하나의 키값 쌍을 : 와 공백과 함께 리턴 . 
    //for .. in 구문 이용 
    let print = '';
   for (prop in obj){
       if(obj[prop]){
        print = print + `${prop}: ${obj[prop]}\n`
       }
   }
   return print;
}

let print = {}

라고 해놓고 계속 텟트가 통과되지 않아 헤맸다 

스트링으로 반환하는 것이기 때문에 객체안에 넣어줄 필요가 없고 그냥 스트링으로 만들어서 합치면 될 일이였다. 

거의 이 문제 해결에 삼십분이상 소요된 것 같다. 

 


 

12. 객체 extends 문제.

  • 이 문제의 목적 : 객체에서의 속성 할당과 if 문을 이용하여 조건적으로 for 문 작동시키기 
  • 이 문제가 정말이지 너무 어려워서 레퍼런스를 봐도 이해가 안됐다. 페어분이랑도 한참 고민해서 솔루션 1, 2 중 두번째껀 이해를 했지만 첫번째꺼는 아예 이해가 안갔다. 
  • 오피스아워때 질문후 어느정도 이해를 했지만 다시 같은 방법으로 풀어보려고 하니 안됐다 ㅠㅠ
  • 두번째 방법은 assign 을 이용한 간단한 코드. assign 은 할당시키고 중복되는 값을 겹친다.  
function extend(obj1, obj2) {
    for(let key2 in obj2){
            if(!(obj1[key2])){
                obj1[key2] = obj2[key2]
            }
        }
    }


function extend(obj1, obj2) { 
   Object.assign(obj1, Object.assign({},obj2,obj1));
   }

 

 


 

 

13. 객체 13번의 목적 : 객체 속성 추가 + for 문과 새로운 객체 선언 및 활용 

function countAllCharacters(str) {
    //주어진 문자열의 각각의 문자를 키로 가지는 객체를 반환한다. 
    // 해당 문자가 주어진 문자에서 몇번 나오는지 나타낸다 
    //for 반복문을 써야 할 것 같다. 
    // 문자열이 빈 문자열일 경우 countAllCharacters 는 빈 객체를 반환 
    // 빈객체일때 값을 0 이라고 해놓고 
    // 빈객체가 아닐때 속성의 값이 하나씩 늘어난다고 만들자 .
    let obj = {};
    for(let i = 0 ; i < str.length ; i++){
        if(obj[str[i]] === undefined){
            obj[str[i]] = 0
        }
        obj[str[i]]++
    }
    return obj;
    }

 이 문제도 마찬가지로 직접 하지는 못했음. 

오피스아워때 설명을 들었으나 그래도 잘 모르겠음.. ㅠㅠ

일단 레퍼런스 보니까 좀 이해가간다.