728x90
#문제
두개의 객체를 입력받아 두번째 객체의 속성들을 첫번째 객체에 추가해야 합니다.
#입출력예시
const obj1 = {
a: 1,
b: 2,
};
const obj2 = {
b: 4,
c: 3,
};
extend(obj1, obj2);
console.log(obj1); // --> {a: 1, b: 2, c: 3}
console.log(obj2); // --> {b: 4, c: 3}
#내가푼답
//1. obj1의 키와 obj2 키가 같다 -> obj1의 키로 놔둔다
//2. obj1의 키와 obj2의 키가 다르면-> obj1 + obj2
//
//obj1[key]:이건 값이다
#반성
extend함수로 암기해두는게 좋을거같다 !!!!!
#풀이
//그러면 중복되는지 여부를 확인해서 합쳐주면 될것같다.
//두번째 객체를 반복-> 프로퍼티를 모두 obj1에 추가
//조건: 첫번째에 이미 있으면 제외
//예시를 일단 보자
function extend(obj1, obj2) {
for(let prop in obj2) {
//prop ='b'
//prop ='c' -> 1에 없다->else로 간다
if(prop in obj1){
continue;
} else {
obj1[prop] = obj2[prop]
// obj1['c'] = obj2['c']
}
}
for(let prop in obj2) {
//prop ='b'
//prop ='c' -> 1에 없다->else로 간다
if(prop in obj1){
continue;
} else {
obj1[prop] = obj2[prop]
// obj1['c'] = obj2['c']
}
}
#정답1
function extend(obj1, obj2) {
for(let prop in obj2) {
if(prop in obj1){
continue;
} else {
obj1[prop] = obj2[prop]
}
}
for(let prop in obj2) {
if(prop in obj1){
continue;
} else {
obj1[prop] = obj2[prop]
}
}
#정답2
function extend(obj1, obj2) {
for(let key in obj2) {
if(!(key in obj1)){
obj1[key] = obj2[key];
}
}
}
# extend 함수 : 두개의 객체를 입력받아 두번째 객체(obj2)의 속성들을 첫번째 객체 (obj1)에 추가하는 함수
function extend(obj1, obj2) {
for(let key in obj2) {
if(!(key in obj1)) {
obj1[key] = obj2[key];
}
}
}
728x90
'코플릿 기록 > JavaScript' 카테고리의 다른 글
객체 14번★★ (0) | 2023.01.01 |
---|---|
객체 12번 (속성의 개수)★★ (0) | 2023.01.01 |
객체 20번 ★★★★ (0) | 2022.12.30 |
객체 15번 ★★ (0) | 2022.12.30 |
calculator 구현과제 (0) | 2022.12.27 |