본문 바로가기

programming/javascript

[JS] 객체 차집합 만들기 예제 코드

과제 중에 차집합을 만들면 해결할 수 있는 문제가 있어서 만들어 보았다.

// 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