diff --git a/lib/connectors/memory.js b/lib/connectors/memory.js index a8b40e84..4d98e05e 100644 --- a/lib/connectors/memory.js +++ b/lib/connectors/memory.js @@ -347,18 +347,19 @@ Memory.prototype.all = function all(model, filter, callback) { }); function sorting(a, b) { + var undefinedA, undefinedB; + for (var i = 0, l = this.length; i < l; i++) { + undefinedB = b[this[i].key] === undefined && a[this[i].key] !== undefined; + undefinedA = a[this[i].key] === undefined && b[this[i].key] !== undefined; - if (a[this[i].key] === undefined && b[this[i].key] === undefined) { - return 0; - } - - if (b[this[i].key] === undefined || a[this[i].key] > b[this[i].key]) { + if (undefinedB || a[this[i].key] > b[this[i].key]) { return 1 * this[i].reverse; - } else if (a[this[i].key] === undefined || a[this[i].key] < b[this[i].key]) { + } else if (undefinedA || a[this[i].key] < b[this[i].key]) { return -1 * this[i].reverse; } } + return 0; } };