ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で配列から重複オブジェクトを効率的に削除するにはどうすればよいですか?

JavaScript で配列から重複オブジェクトを効率的に削除するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-19 06:10:54681ブラウズ

How to Efficiently Remove Duplicate Objects from an Array in JavaScript?

配列から重複オブジェクトを削除する方法

オブジェクトの配列を操作する場合、多くの場合、重複を削除する必要があります。 ES6 フィルター メソッドは、このタスクに洗練されたソリューションを提供します。

ES6 Magic

obj.arr = obj.arr.filter((value,index,self) ) =>
インデックス === self.findIndex((t) => (

t.place === value.place && t.name === value.name

))
)

このコードは、配列内の各要素を後続のすべての要素と比較します。重複が見つかった場合は、フィルターで除外されます。

一般的な解決策

より一般的なアプローチの場合:

const uniqueArray = obj。 arr.filter((値, インデックス) => {
const _value = JSON.stringify(value);
インデックスを返す === obj.arr.findIndex(obj => {

return JSON.stringify(obj) === _value;

});
});

この戦略は、各オブジェクトを文字列にシリアル化し、文字列を比較して識別します。

プロパティベースの比較

プロパティ戦略の使用:

const getUniqueItemsByProperties = (items, propNames) =>
items.filter((item,index,array) =>

index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames))

);

このアプローチにより、一意性を決定するプロパティを柔軟に指定できます。 .

ラップされたプロパティ戦略

配列名と単一のプロパティ名の両方を許可するには:

const getUniqueItemsByProperties = (items, propNames) => {
const propNamesArray = Array.from(propNames);

return items.filter((項目, インデックス, 配列) =>

index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNamesArray))

);
};

説明

ここでの重要なアイデアは、重複を識別するためのフィルター方法。一意性の基準は比較ロジックによって決定され、オブジェクトのプロパティまたはシリアル化戦略に基づいてカスタマイズできます。

以上がJavaScript で配列から重複オブジェクトを効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。