私たちは2016年ですので、性能とクリーンなコードを考慮して重複しない項目を配列に挿入する最良の方法を知りたいと思います。Typescript配列重複しない項目を挿入
EDIT:たとえば
:
私のオブジェクトは次のとおりです。
obj = {id: 1, a: 2, b: 3, c: 4}
マイ配列arr:
arr.push(obj);
arr.push(obj); // Avoid this duplicate obj
はありがとうございます。
私たちは2016年ですので、性能とクリーンなコードを考慮して重複しない項目を配列に挿入する最良の方法を知りたいと思います。Typescript配列重複しない項目を挿入
EDIT:たとえば
:
私のオブジェクトは次のとおりです。
obj = {id: 1, a: 2, b: 3, c: 4}
マイ配列arr:
arr.push(obj);
arr.push(obj); // Avoid this duplicate obj
はありがとうございます。
は、言語にはネイティブpushIfUnique
ありませんので、あなたは選択肢にあります
(1)順序が重要でない場合だけの識別子としてMap
をid
(または何でも)を使用します。
(2)の注文が重要な場合Array.find
を使用すると小さなヘルパー機能を記述できます。例:
const pushIfUnique = (predicate, object, array) => {
if (!array.find(item => predicate(object, item))) {
array.push(object);
}
};
ありがとう!私は新しいSetsオブジェクトを使って方法を見つけることができるのだろうか... ... – Eusthace
オブジェクトを識別するためにプロパティのサブセット(例えば 'id'のためにユニーク)を使う場合、' Set'は何も持たないでしょうb/c ['has'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/has)は、保存された値全体でのみ動作します。とにかくエントリを繰り返し処理する必要があります。 –
ああ、あなたは素晴らしいです!ありがとうございました! – Eusthace
重複した項目を特定するもの –
質問を更新しました。ありがとうございました! – Eusthace