ホームページ  >  記事  >  ウェブフロントエンド  >  別のオブジェクトの配列に基づいてオブジェクトの配列をフィルタリングする方法

別のオブジェクトの配列に基づいてオブジェクトの配列をフィルタリングする方法

DDD
DDDオリジナル
2024-11-02 03:34:30555ブラウズ

How to Filter an Array of Objects Based on Another Array of Objects?

別のオブジェクト配列に基づいてオブジェクトの配列をフィルタリングする

問題:

2 つが与えられた場合オブジェクトの配列の場合、目的は、2 番目の配列を参照として使用し、特定の基準に基づいて最初の配列をフィルター処理することです。具体的には、最初の配列をフィルタリングして、2 番目の配列内のオブジェクトと特定のプロパティ (ユーザー ID とプロジェクト ID) に一致するオブジェクトのみを含めるようにします。

解決策:

配列内のフィルターといくつかのメソッドを利用すると、次の解決策を実現で​​きます。

  1. 最初の配列の反復:
    最初の配列でフィルター メソッドを使用して反復処理します。
  2. Match Check:
    フィルター コールバック関数内で、2 番目の配列の some メソッドを使用して、最初の配列の現在の要素と一致するオブジェクトがあるかどうかを確認します。
  3. フィルタリング:
    一致する場合、some 関数は true を返し、フィルタリングされた結果の配列にその要素が保持されます。

例:

<code class="js">const myArray = [{ userid: "100", projectid: "10", rowid: "0" },
                { userid: "101", projectid: "11", rowid: "1" },
                { userid: "102", projectid: "12", rowid: "2" },
                { userid: "103", projectid: "13", rowid: "3" },
                { userid: "101", projectid: "10", rowid: "4" }];

const myFilter = [{ userid: "101", projectid: "11" },
                { userid: "102", projectid: "12" },
                { userid: "103", projectid: "11" }];

const myArrayFiltered = myArray.filter((el) => {
  return myFilter.some((f) => {
    return f.userid === el.userid && f.projectid === el.projectid;
  });
});

console.log(myArrayFiltered);</code>

期待される結果:

<code class="js">[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]</code>

以上が別のオブジェクトの配列に基づいてオブジェクトの配列をフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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