[문제]
두 개의 객체가 주어졌을 때, 두번째 객체의 모든 프로퍼티를 첫번째 객체로 추가하는 프로그램을 작성하라.
이때, 첫번째 객체에 없는 key를 추가하고, 두번째 객체를 변경하지 마라.
두번째 객체로부터 새로운 key가 추가된, 첫번째 객체를 리턴하라.
function extend(obj1, obj2) {
// your code
}
[예제]
var obj1 = { a: 1, b: 2 };
var obj2 = { b: 4, c: 3 };
console.log(extend(obj1, obj2)); // { a: 1, b: 2, c: 3 }
[알고리즘]
- for in문을 돌려, 두번째 객체의 key를 하나씩 체크한다.
- 이때, 두번째 객체의 key가 첫번째 객체에 포함되는지 확인한다.
- 포함이 안되어있으면, 그 key와 value를 첫번재 객체에 추가한다.
- 첫번째 객체를 리턴한다.
[Solution]
function extend(obj1, obj2) {
for (var key in obj2) {
if (!(obj1.hasOwnProperty(key))) {
obj1[key] = obj2[key];
}
}
return obj1;
}