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;
}
이 문제도 마찬가지로 직접 하지는 못했음.
오피스아워때 설명을 들었으나 그래도 잘 모르겠음.. ㅠㅠ
일단 레퍼런스 보니까 좀 이해가간다.