20201206 _ 알고리즘 (key in obj)

jungeundelilahLEE·2020년 12월 5일
0

Daily Algorithm

목록 보기
4/19

[객체19]

두 개의 객체를 입력받아 두번째 객체의 속성들을 첫번째 객체에 추가해야 합니다.


인자 1 : obj1
임의의 속성을 갖는 객체
인자 2 : obj2
임의의 속성을 갖는 객체

별도의 리턴문(return statement)을 작성하지 않습니다.

추가하려는 속성이 이미 첫번째 객체에 존재하는 경우, 기존 값을 그대로 둡니다.
두번째 객체는 수정하지 않아야 합니다.


// obj1의 속성이 우선시된다
// obj1의 속성 === obj2의 속성 이면, 추가 x
// 다르면, obj2[prop]을 obj1에 추가
// 라고 생각했는데.. 

function extend(obj1, obj2) {
  for (let prop1 in obj1) {
    for (let prop2 in obj2) {
      if (prop1 !== prop2) {
        obj1[prop2] = obj2[prop2];
      } else if  (prop1 === prop2) {
        obj1[prop1] = obj1[prop1] // 여기서 제대로 작동되지 않음
      }
    }
  }
}

// ref
//  if (!(key in obj1)) 이런식으로 쓰는 방식 훈련하기!

function extend(obj1, obj2) {
   for (let key in obj2) { // obj2의 속성값을 순회
     if (!(key in obj1)) { // 만약, obj1안에 key가 없으면,
       obj1[key] = obj2[key]; // obj1의 키값으로 obj2의 키값을 할당
     }
   }
 }
profile
delilah's journey

0개의 댓글