Here you go:
var filteredArray = filter(myBigObject.homes, {
price: function(value) {
value = parseFloat(value);
return value >= 150000 && value <= 400000;
},
num_of_baths: function(value) {
value = parseFloat(value);
return value >= 2.5;
},
num_of_beds: function(value) {
value = parseFloat(value);
return value === 1 || value === 3;
}
});
And the filter function:
function filter( array, filters ) {
var ret = [],
i = 0, l = array.length,
filter;
all: for ( ; i < l; ++i ) {
for ( filter in filters ) {
if ( !filters[filter](array[i][filter]) ) {
continue all;
}
}
ret[ret.length] = array[i];
}
return ret;
}