2016-10-24 3 views
0

우리는 2016 년입니다. 따라서 성능과 코드를 고려하여 배열에 비 중복 항목을 삽입하는 가장 좋은 방법을 알고 싶습니다.Typescript 배열 중복되지 않는 항목 삽입

편집 : 예를 들어

:

내 목적은 다음과 같습니다

obj = {id: 1, a: 2, b: 3, c: 4} 

내 배열 편곡 :

arr.push(obj); 

arr.push(obj); // Avoid this duplicate obj 

감사합니다.

+0

중복 된 품목을 식별합니다. –

+0

질문을 업데이트했습니다. 고맙습니다! – Eusthace

답변

1

는 언어의 네이티브 pushIfUnique 없다, 그래서 당신은 옵션이 있습니다

(1) 순서가 중요하지 않은 경우 단지 식별자로 Mapid (또는 무엇이든)를 사용합니다.

(2) 주문이 중요한 경우Array.find을 사용하여 작은 도우미 기능을 작성할 수 있습니다. 예 :

const pushIfUnique = (predicate, object, array) => { 
    if (!array.find(item => predicate(object, item))) { 
    array.push(object); 
    } 
}; 
+0

감사합니다! 새로운 Sets 객체를 사용하는 방법을 찾을 수 있는지 궁금합니다 ... – Eusthace

+0

속성 집합을 사용하여 객체를 식별하는 경우 (예를 들어'id' 때문에 고유합니다) 'Set'에는 아무 것도 없을 것입니다 b/c ['has'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/has)는 저장된 전체 값으로 만 작동합니다. 어쨌든 엔트리를 반복해야합니다. –

+0

아, 너 놀랍다! 고맙습니다! – Eusthace

관련 문제