190628 assign object

zenibako.lee
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를 덮어쓰는 것을 방지하고 병합 가능.

--

--

zenibako.lee
zenibako.lee

Written by zenibako.lee

backend engineer, JS, Node, AWS

No responses yet