190628 assign object
2 min readJun 28, 2019
var obj1 = {
a: 1,
b: 2
};
var obj2 = {
b: 4,
c: 3
};
extend(obj1, obj2);
console.log(obj1); // --> {a: 1, b: 2, c: 3}
console.log(obj2); // --> {b: 4, c: 3}
중복된 KEY를 제외하고 obj1 객체에 병합하기.
본인의 방법
function extend(obj1, obj2) {
var keys = Object.keys(obj2);
console.log(keys);
for(var i in keys){
console.log(i+keys[i]);
if(Object.keys(obj1).indexOf(keys[i]) === -1){
console.log(‘없는 키 값’+i)
obj1 = Object.assign(obj1, {[keys[i]] : obj2[keys[i]]});
console.log(‘병합 완료’+ obj1);
break;
}
console.log(i+’번째 키 값이 중복되어 다음 키로 넘어갑니다.’)
}
};
제시된 솔루션 1
function extend(obj1, obj2) {
for(let key in obj2) {
if(!(key in obj1)) {
obj1[key] = obj2[key];
}
}}
obj2에 있는 key를 기준으로 반복
obj1 key와 중복되는지 검사 후 중복 아닐 시
해당 key로 obj1에 브라켓[]을 이용한 삽입.
function extend(obj1, obj2) {
Object.assign(obj1, Object.assign({}, obj2, obj1));
}
Object.assign(obj1,obj2,obj3) // 차례대로 obj1에 obj2병합 obj3병합
을 이용하여
obj2에 obj1 을 덮어 씌워주고, obj1에 다시 덮어주면
동일한 키 값일 때 value를 덮어쓰는 것을 방지하고 병합 가능.