본문 바로가기

알고리즘/JavaScript | AG

[객체] 객체 두개가 주어졌을때, 두번째 객체의 속성을 첫번째에 추가하라

문제 설명

객체 두개가 주어졌을때, "extend" 함수는 두번째 객체의 속성을 첫번째 객체에 추가해야 합니다.

 

조건

  • 첫번째 객체에 없는 모든 키를 추가해야한다.

  • 만약 첫번째 객체에 이미 있는 키라면, 값을 덮어쓰지말고 무시하라.

  • 두번째 객체는 수정하면 안된다.

 

입출력 예시

let obj1 = {
  a: 1,
  b: 2
};
let obj2 = {
  b: 4,
  c: 3
};

extend(obj1, obj2);

console.log(obj1); // --> {a: 1, b: 2, c: 3}
console.log(obj2); // --> {b: 4, c: 3}

 

문제

 

function extend(obj1, obj2) {

}

 


 

*풀이1

1
2
3
4
5
6
function extend(obj1, obj2) {
   for(let key in obj2) {
      if(!(key in obj1)) {
         obj1[key] = obj2[key];
   }
}
cs

 

*풀이2

1
2
3
4
5
6
7
function extend(obj1, obj2) {
    for(let key in obj2){
        if(!obj1.hasOwnProperty(key)){
            obj1[key] = obj2[key];
        }
    }
}
 
cs

 

*풀이3

1
2
3
function extend(obj1, obj2) {
   Object.assign(obj1, Object.assign({}, obj2, obj1));
}
 
cs