Object.entries(), Object.fromEntries()

장동혁·2021년 1월 28일
1

ECMA Script

목록 보기
4/4

개요

JS object의 특정 entry를 삭제해야하는 상황이 발생했고 해결을 위한 과정을 기록한다.

Ojbect.keys()를 활용해서 해결

다음과 같은 object가 있다고 가정할 때 value가 null인 entry를 삭제해야 될 경우 다음과 같이 해결 할 수 있다.

const obj = {
  a: 1,
  b: 2,
  c: null,
  d: null,
  e: 3,
  f: null,
}

Object.keys(obj).forEach((key) => {
  obj[key] === null && delete obj[key];
});

object자체를 변경하기 떄문에 object가 immutable해야 할 경우에는 위와 같이 해결할 수 없다. 물론 해당 object를 복사한 뒤 위의 방식대로 해결하면 되지만 코드가 길어져서 마음에 들지 않는다.

Object.entrys(), Object.fromEntries()를 활용해서 해결

const newObj = Object.fromEntries(
  Object.entries(obj).filter((entry) => entry[1] !== null))
);

위와 같이 object를 array로 변환한 뒤 filter로 필터링 한 후 다시 object로 변환하면 원본 object를 변경하지 않고 해결할 수 있다. 뿐만 아니라 array관련 다른 함수들을 활용 할 수 있으므로 유용하게 사용할 수 있을 것 같다.

profile
기록하는 습관

0개의 댓글