配列から重複オブジェクトを削除する方法
クエリは、オブジェクト内の配列から重複オブジェクトを効率的に削除することを中心に展開します。この目標を達成するための効果的なテクニックをいくつか見てみましょう。
ES6 ソリューション:
ES6 の優雅さを少し導入し、filter メソッドと findIndex メソッドを利用できます:
obj.arr = obj.arr.filter((value, index, self) => index === self.findIndex((t) => ( t.place === value.place && t.name === value.name )) );
このアプローチにより、一意のオブジェクトのみが確実に保存されます。 array.
一般的な解決策:
より汎用性の高い解決策については、以下を検討してください。
const uniqueArray = obj.arr.filter((value, index) => { const _value = JSON.stringify(value); return index === obj.arr.findIndex(obj => { return JSON.stringify(obj) === _value; }); });
このメソッドは、JSON 文字列化を使用して、以下に基づいてオブジェクトを比較します。プロパティ値。
プロパティベースフィルタリング:
または、特定のプロパティでオブジェクトを比較する関数を定義できます:
const isPropValuesEqual = (subject, target, propNames) => propNames.every(propName => subject[propName] === target[propName]); const getUniqueItemsByProperties = (items, propNames) => items.filter((item, index, array) => index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames)) );
この関数は、指定されたプロパティに基づいて一意のオブジェクトを含む配列を返します。 names.
説明:
これらの手法を活用すると、配列から重複オブジェクトを効果的に削除でき、クリーンで簡潔なデータセットを操作できるようになります。
以上がJavaScript で配列から重複オブジェクトを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。