안녕하세요 ~
얼마전 실무에서 사용할 일이 있어 알아보게되었던 부분인데요 ,,,
객체 내부 Value 중복제거를 알아보겠습니다.
우선 아래와 같이 Arr안에 같은 키 값을 가진 여러 객체가 있다고 가정해보겠습니다.
let rawArr = [
{
id : 1,
name : "hi"
},
{
id : 1,
name : "A"
},
{
id : 2,
name : "B"
},
{
id : 2,
name : "B"
},
{
id : 3,
name : "hi"
}
]
중복으로 들어가 있는 id를 가진 객체를 제거하고싶었습니다.
방법은 여러가지겠지만 ES6문법으로 알아보겠습니다.
/**
* 1. reduce some
*/
const unique_user = rawArr.reduce((prev, now) => {
if (!prev.some(obj => obj.id === now.id )) prev.push(now);
return prev;
}, []);
/**
* 2. filter - 2.1 find
* - 2.2 some
*/
let retArr = []
rawArr.filter((origin, index) => {
// if(!retArr.find((_retData, _retIndex) => origin.id === _retData.id && index !== _retIndex)) retArr.push(origin)
if(!retArr.some((_retData, _retIndex) => origin.id === _retData.id && index !== _retIndex)) retArr.push(origin)
}
)
1번은 reduce 와 some 을 이용
2번은 filter 와 find, some 을 이용했습니다.
아래와 같이 중복제거가 되었습니다.
유용하게 사용하세요 감사합니다.
'Node.js' 카테고리의 다른 글
Node.js를 이용한 질병관리본부 코로나 데이터 크롤링 (1) | 2020.03.15 |
---|---|
express의 bin/www와 app.js (0) | 2019.12.12 |
node.js의 Express-generator 패키지 설치하기 (0) | 2019.12.12 |
node.js의 npm, package.json (0) | 2019.12.12 |
JavaScript Template Literal (0) | 2019.12.02 |