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

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

Mary-Kate Olsen
リリース: 2024-12-27 20:17:10
オリジナル
282 人が閲覧しました

How to Remove Duplicate Objects from an Array in JavaScript?

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

クエリは、オブジェクト内の配列から重複オブジェクトを効率的に削除することを中心に展開します。この目標を達成するための効果的なテクニックをいくつか見てみましょう。

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.

説明:

  • filter: 指定された基準を満たす重複オブジェクトを削除します。
  • findIndex: に一致するオブジェクトの最初の出現のインデックスを返します。

これらの手法を活用すると、配列から重複オブジェクトを効果的に削除でき、クリーンで簡潔なデータセットを操作できるようになります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート