我有以下房地产家庭对象的 JavaScript 数组:
var json = {
'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 xmlhttp = eval('(' + json + ')');
homes = xmlhttp.homes;
我想做的是能够对对象执行过滤器以返回“home”对象的子集。
例如,我希望能够根据: price
、 sqft
、 num_of_beds
和 num_of_baths
进行过滤。
如何在 JavaScript 中执行某些操作,如下面的伪代码:
var newArray = homes.filter(
price <= 1000 &
sqft >= 500 &
num_of_beds >=2 &
num_of_baths >= 2.5 );
请注意,语法不必与上面完全相同。这只是一个例子。
原文由 JGreig 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
Array.prototype.filter
方法:现场示例:
此方法是新 ECMAScript 第 5 版 标准的一部分,几乎可以在所有现代浏览器上找到。
对于 IE,您可以包括以下方法以实现兼容性: