diff --git a/lib/filters/equality_filter.js b/lib/filters/equality_filter.js index f8999fd..5a1fa7e 100644 --- a/lib/filters/equality_filter.js +++ b/lib/filters/equality_filter.js @@ -47,20 +47,14 @@ EqualityFilter.prototype.matches = function(target) { if (typeof(target) !== 'object') throw new TypeError('target (object) required'); - var matches = false; if (target.hasOwnProperty(this.attribute)) { - if (Array.isArray(target[this.attribute])) { - for (var i = 0; i < target[this.attribute].length; i++) { - matches = (this.value === target[this.attribute][i]); - if (matches) - break; - } - } else { - matches = (this.value === target[this.attribute]); - } + var value = this.value; + return Filter.multi_test( + function(v) { return value === v; }, + target[this.attribute]); } - return matches; + return false; }; diff --git a/lib/filters/ge_filter.js b/lib/filters/ge_filter.js index 9177c4c..a2aa7d4 100644 --- a/lib/filters/ge_filter.js +++ b/lib/filters/ge_filter.js @@ -48,21 +48,14 @@ GreaterThanEqualsFilter.prototype.matches = function(target) { if (typeof(target) !== 'object') throw new TypeError('target (object) required'); - var matches = false; - if (target.hasOwnProperty(this.attribute)) { - if (Array.isArray(target[this.attribute])) { - for (var i = 0; i < target[this.attribute].length; i++) { - matches = (this.value <= target[this.attribute][i]); - if (matches) - break; - } - } else { - matches = (this.value <= target[this.attribute]); - } + var value = this.value; + return Filter.multi_test( + function(v) { return value <= v; }, + target[this.attribute]); } - return matches; + return false; }; diff --git a/lib/filters/le_filter.js b/lib/filters/le_filter.js index eb87149..e90fa03 100644 --- a/lib/filters/le_filter.js +++ b/lib/filters/le_filter.js @@ -48,21 +48,14 @@ LessThanEqualsFilter.prototype.matches = function(target) { if (typeof(target) !== 'object') throw new TypeError('target (object) required'); - var matches = false; if (target.hasOwnProperty(this.attribute)) { - if (Array.isArray(target[this.attribute])) { - for (var i = 0; i < target[this.attribute].length; i++) { - matches = (this.value >= target[this.attribute][i]); - if (matches) - break; - } - } else { - matches = (this.value >= target[this.attribute]); - } + var value = this.value; + return Filter.multi_test( + function(v) { return value >= v; }, + target[this.attribute]); } - - return matches; + return false; };