[JavaScript] 배열 내 객체의 중복 키 값을 제거하는 방법

Hyunwoo Seo·2023년 10월 14일
0

JavaScript

목록 보기
22/31
post-thumbnail

배열 내 객체 프로퍼티 값 중에 중복으로 들어간 것을 제거하는 방법엔 여러방법이 있고 정답은 없다.

나는 주로 익숙한 filter 를 사용한다.

let 배열 = [{ id: 111 }, { id: 111 }, { id: 234 }];

filter

배열.filter((ele, idx, arr) => idx === arr.findIndex(findIdx => findIdx.id === ele.id));

Set()

[...new Set(example.map(JSON.stringify))].map(JSON.parse);
  • set 은 제한적으로 사용해야한다. id가 같으나, 다른 속성이 있다면 중복이라 생각하지 않고 리턴한다.
const example = [
  { id: 111, name: "one" },
  { id: 111, name: "two" },
  { id: 1234, name: "three" }
];
console.log([...new Set(example.map(JSON.stringify))].map(JSON.parse));
// [{id: 111,  name: 'one'}, {id: 111, name: 'two'}, {id: 1234, name: 'three'}]
  • 즉, 객체의 속성이 1개만 있거나, 객체 값이 완전히 같은 것을 중복 제거 할 경우만 new Set을 써야한다.

0개의 댓글