ホームページ  >  記事  >  ウェブフロントエンド  >  別の配列内の一致するプロパティに基づいてオブジェクトの配列をフィルターするにはどうすればよいですか?

別の配列内の一致するプロパティに基づいてオブジェクトの配列をフィルターするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 08:50:02161ブラウズ

How to Filter an Array of Objects Based on Matching Properties in Another Array?

別のオブジェクト配列を使用したオブジェクトの配列のフィルタリング

ここでのタスクは、オブジェクトの配列 (myArray) を、オブジェクトの 2 番目の配列 (myFilter) は、userid プロパティと projectid プロパティが myFilter のものと一致する myArray 内のオブジェクトのみを返します。

ソリューション

これを実現するには、フィルタといくつかのメソッドの組み合わせ。 filter メソッドは、myArray 内の各要素を反復処理し、指定された条件に合格する要素のみを含む新しい配列を返します。この場合、要素の userid と projectid が myFilter 内の userid と projectid のペアのいずれかと一致する場合、条件は満たされます。

myFilter 内の要素のいずれかが満たされるかどうかを判断するために、フィルタ条件内で some メソッドが使用されます。指定された基準。この条件は、現在の myFilter 要素の userid および projectid プロパティが現在の myArray 要素のプロパティと等しいかどうかをチェックします。一致するものが見つかった場合、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>

出力

[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]

以上が別の配列内の一致するプロパティに基づいてオブジェクトの配列をフィルターするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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