問題:
不動産の住宅オブジェクトの配列があります。価格、平方フィート、寝室の数、バスルームの数などの特定の条件に基づいて配列をフィルタリングして、「家」オブジェクトのサブセットを返す必要があります。
解決策:
属性に基づいてオブジェクト配列をフィルターするには、Array.prototype.filter メソッドを使用できます。このメソッドはコールバック関数を引数として受け取り、配列内の各要素をフィルタリングされた配列に含めるかどうかを決定するために使用されます。
あなたの場合、各ホームがオブジェクトはすべての基準を満たしています。以下に例を示します。
let newArray = homes.filter(function (el) { return el.price <= 1000 && el.sqft >= 500 && el.num_of_beds >= 2 && el.num_of_baths >= 2.5; });
このコールバック関数は、price 属性が 1000 以下かどうか、sqft 属性が 500 以上かどうか、num_of_beds 属性が以上かどうかをチェックします。 num_of_baths 属性が 2.5 以上の場合。これらの条件がすべて満たされる場合、要素はフィルタリングされた配列に含まれます。
構文は、指定した例とまったく同じである必要はないことに注意してください。上の例では && 演算子を使用して条件を結合していますが、& 演算子を使用することもできます。さらに、アロー関数を使用してコールバック関数を簡素化することもできます。
実際の例を次に示します:
<script> var obj = { 'homes': [{ "home_id": "1", "price": "925", "sqft": "1100", "num_of_beds": "2", "num_of_baths": "2.0", }, { "home_id": "2", "price": "1425", "sqft": "1900", "num_of_beds": "4", "num_of_baths": "2.5", }, // ... (more homes) ... ] }; var newArray = obj.homes.filter(function (el) { return el.price <= 1000 && el.sqft >= 500 && el.num_of_beds >= 2 && el.num_of_baths >= 2.5; }); console.log(newArray); </script>
以上が属性に基づいてホーム オブジェクトの JavaScript 配列をフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。