FrontEnd/Angular

Object 중복객체 제거

철철22 2018. 6. 8. 11:40
반응형

자주는 아니지만 객체의 특정 컬럼의 중복을 제거를 해야할 때가 있다.

그럴때 나는 밑의 방법처럼 사용한다.


getGoodsCategoryInShopUsingGET(member_sq: number): Observable {
}
 
category:GoodsCategory= new GoodsCategory();
 
// 이런식으로

get this.mainCategory = Object(this.category).filter((array, index, self) => self.findIndex((t) => 
{ return t.mainCategoryName === array.mainCategoryName && t.mainCategoryId ===  array.mainCategoryId; }) === index );
 
// ! 주의Object(this.category)를처음에Array(this.category)로 사용했다가안되서낭패를봄

결과:




 2.  set이용

this.mainCategory = Array.from(new Set(Object(this.category).map(name => name.mainCategoryName)));
 // Array.from(new Set(Object(this.category).map(JSON.stringify))).map(JSON.parse);  

다시객체로바꾸기 new Set(myData.map(JSON.stringify))은 

new Set(myData.map(JSON.stringify))화 된 myData 요소를 사용하여 Set 객체를 만듭니다. Set 객체는 모든 요소가 고유한지 확인합니다. 

그런 다음 Array.from을 사용하여 만든 세트의 요소를 기반으로 배열을 만듭니다. 마지막으로 JSON.parse를 사용하여 문자열로 된 요소를 다시 객체로 변환합니다. 

결과: ["쥬얼리", "데스크 장난감", "미니어처", "프로토타입 제품인쇄", "부속품"]



참고 :https://code.i-harness.com/ko/q/21dbf7


반응형