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

Barbara Streisand
リリース: 2024-11-01 08:39:02
オリジナル
396 人が閲覧しました

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

オブジェクトの配列を別のオブジェクトの配列でフィルタリングする

問題:

オブジェクトの 2 番目の配列との一致に基づいてオブジェクトの配列をフィルタリングします。たとえば、次の配列があるとします。

<code class="js">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" },
];
myFilter = [
  { userid: "101", projectid: "11" },
  { userid: "102", projectid: "12" },
  { userid: "103", projectid: "11" },
];</code>
ログイン後にコピー

userid プロパティと projectid プロパティが myFilter のプロパティと一致するオブジェクトのみを含めるように myArray をフィルタリングする必要があります。期待される結果は次のとおりです:

<code class="js">myArrayFiltered = [
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" },
];</code>
ログイン後にコピー

解決策:

配列をフィルターするには、フィルターといくつかの配列メソッドを利用できます:

<code class="js">const myArrayFiltered = myArray.filter((el) => {
  return myFilter.some((f) => {
    return f.userid === el.userid && f.projectid === el.projectid;
  });
});</code>
ログイン後にコピー

説明:

  • フィルター メソッドは myArray を反復処理し、引数として指定された条件を満たすオブジェクトのみを含む新しい配列を作成します。
  • 条件内で使用される some メソッドは、myFilter 内の要素が myArray 内の現在の要素の userid および projectid プロパティに一致するかどうかを確認します。
  • 一致が見つかった場合、some メソッドは true を返し、現在の要素がフィルタリングされた配列に含める必要があります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!