Array.prototype.select = function(filter) {
if (!filter) return this;
var result = [], item = null;
for (var i = 0; i < this.length; i++) {
item = this[i];
if (filter(item)) {
result.push(item);
}
}
return result;
}
function filterHomes(homes) {
var a = 1, b = 2, c = 3, x = 4, y = 5, z = 6;
return homes.select(function(item) {
return between(item.price, x, y) && item.num_of_baths >= z && inArray(item.num_of_beds, [a, b, c]);
});
}
function between(value, min, max) {
return value >= min && value <= max;
}
function inArray(value, values) {
for (var i = 0; i < values.length; i++) {
if (value === values[i]) return true;
}
return false;
}