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

객체 19번 (extend) ★★★★

by 뭉지야 2022. 12. 30.
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']
    }
}
 
 
#정답1
 
function extend(obj1, obj2) {
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