과제 중에 차집합을 만들면 해결할 수 있는 문제가 있어서 만들어 보았다.
// obj2 - obj1 이다!
function diff(obj1, obj2) {
let tmp = { ...obj2 };
for (let prop in obj2) {
if (obj1.hasOwnProperty(prop)) {
delete tmp[prop];
}
}
return tmp;
}
객체 차집합 후 합치기 (객체간 합치기를 할 때는 Object.assign 을 사용했는데 원본 객체를 변경하는 것이기 때문에 사용에 주의가 필요하다)
function diff(obj1, obj2) {
let tmp = { ...obj2 };
for (let prop in obj2) {
if (obj1.hasOwnProperty(prop)) {
delete tmp[prop];
}
}
return tmp;
}
const obj1 = { a: 1, b: 2 };
const obj2 = { a: 100, b: 200, c: 300 };
const result = diff(obj1, obj2);
console.log(result); // { c: 300 }
console.log(Object.assign(obj1, result)); // { a: 1, b: 2, c: 300 }
'programming > javascript' 카테고리의 다른 글
[JS] closure 클로저 예제 코드 (0) | 2019.11.16 |
---|---|
prettier 설정 (vscode mac) (0) | 2019.11.16 |
Arrow Function, function() 의 this 차이 예제 코드 (0) | 2019.11.16 |
[JS] forEach, map, filter (0) | 2019.11.16 |
className (0) | 2019.09.17 |