ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で複数の条件でオブジェクトの配列をフィルタリングする方法

JavaScript で複数の条件でオブジェクトの配列をフィルタリングする方法

Patricia Arquette
リリース: 2024-10-26 22:07:29
オリジナル
955 人が閲覧しました

How to Filter an Array of Objects by Multiple Conditions in JavaScript?

JavaScript の複数のフィルター条件に基づいてオブジェクトの配列を簡素化する

質問:

方法JavaScript で複数のフィルター条件に基づいてオブジェクトの配列を単純化できますか?たとえば、次の配列を使用します:

var users = [
  {
    name: 'John',
    email: '[email protected]',
    age: 25,
    address: 'USA'
  },
  {
    name: 'Tom',
    email: '[email protected]',
    age: 35,
    address: 'England'
  },
  {
    name: 'Mark',
    email: '[email protected]',
    age: 28,
    address: 'England'
  }
];
ログイン後にコピー

フィルター オブジェクト:

var filter = {
  address: 'England',
  name: 'Mark'
};
ログイン後にコピー

アドレスと名前の両方ですべてのユーザーをフィルターしたいとします。現在、私の関数は、最初の反復では一致するアドレスを持つすべてのユーザーを追加し、2 番目の反復では一致する名前を持つ最後のユーザーのみを追加します。ただし、両方の条件で同時にフィルタリングする必要があります。

回答:

複数の条件に基づいてオブジェクトの配列をフィルタリングするには、次のアプローチを利用できます。

users = users.filter(function(item) {
  for (var key in filter) {
    if (item[key] === undefined || item[key] != filter[key])
      return false;
  }
  return true;
});
ログイン後にコピー

このコードは、オブジェクトの配列とフィルター オブジェクトの両方を反復処理し、配列内の各オブジェクトがフィルターで指定されたすべての条件に一致することを確認します。 item[key] と filter[key] の比較では、オブジェクト item のプロパティ キーの値が filter オブジェクトの対応する値と一致するかどうかがチェックされます。いずれかの条件が満たされない場合、フィルター関数は false を返し、そのオブジェクトをフィルター結果から除外します。それ以外の場合は true を返し、オブジェクトがすべてのフィルタ条件を満たしていることを示します。

このアプローチを適用すると、複数の条件に基づいてオブジェクトの配列を効果的にフィルタリングでき、すべての条件を満たすオブジェクトのみを確実にフィルタリングできます。結果には含まれます。

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

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