首頁 >web前端 >js教程 >如何根據屬性過濾 Home 物件的 JavaScript 陣列?

如何根據屬性過濾 Home 物件的 JavaScript 陣列?

Barbara Streisand
Barbara Streisand原創
2024-12-20 13:24:09460瀏覽

How to Filter a JavaScript Array of Home Objects Based on Attributes?

根據 JavaScript 中的屬性過濾物件陣列

問題:

您有一個房地產家庭物件陣列。您需要根據特定條件(例如價格、平方英尺、臥室數量和浴室數量)過濾陣列以傳回「家庭」物件的子集。

解決方案:

要根據屬性過濾物件數組,可以使用 Array.prototype.filter 方法。此方法採用回呼函數作為參數,用於確定數組中的每個元素是否應包含在過濾後的數組中。

在您的情況下,您可以建立一個回呼函數來檢查每個 home 是否應包含在過濾後的陣列中。對象滿足您的所有標準。以下是一個例子:

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屬性是否大於或等於為2,並且如果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>

以上是如何根據屬性過濾 Home 物件的 JavaScript 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn