From 803c05dc68a00b834f33cbe3dbc4ddd78b603c62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=B3=E6=99=93=E6=9D=BE?= <13780306726@163.com> Date: Fri, 26 Jan 2018 15:15:54 +0800 Subject: [PATCH] Support locales in sorting methods (#3602) --- .internal/compareAscending.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.internal/compareAscending.js b/.internal/compareAscending.js index 7ce2ffe63..07e63b733 100644 --- a/.internal/compareAscending.js +++ b/.internal/compareAscending.js @@ -20,14 +20,21 @@ function compareAscending(value, other) { const othIsReflexive = other === other const othIsSymbol = isSymbol(other) - if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || + let val = 0 + if (typeof value == 'string') { + val = value.localeCompare(other,'zh') + } else { + val = value - other + } + + if ((!othIsNull && !othIsSymbol && !valIsSymbol && val>0) || (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || (valIsNull && othIsDefined && othIsReflexive) || (!valIsDefined && othIsReflexive) || !valIsReflexive) { return 1 } - if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + if ((!valIsNull && !valIsSymbol && !othIsSymbol && val<0) || (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || (othIsNull && valIsDefined && valIsReflexive) || (!othIsDefined && valIsReflexive) ||