From e45407256e928ccde77fca3f1ff3b3742d6500cc Mon Sep 17 00:00:00 2001 From: Christian Vette Date: Mon, 22 Dec 2014 21:06:01 +0100 Subject: [PATCH] fix sorting of undefined values with multiple columns --- lib/connectors/memory.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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; } };