2016-10-24 16 views
0

私たちは2016年ですので、性能とクリーンなコードを考慮して重複しない項目を配列に挿入する最良の方法を知りたいと思います。Typescript配列重複しない項目を挿入

EDIT:たとえば

私のオブジェクトは次のとおりです。

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

マイ配列arr:

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

関連する問題