Я использую jquery.datatables, чтобы отображать числа в столбцах datatables. Числа отформатированы так, чтобы иметь место между тысячами единиц (например, 123 456 789
). К сожалению, это числовое форматирование провоцирует сортировку строк вместо сортировки по номерам (см. Скриншот в конце этого вопроса).
Я определил, что:
-
function _fnSort(oSettings, bApplyClasses) {
- основная функция для сортировки. - В этой функции используется подход сортировки динамических функций (тот, который выполняется, если
if (!window.runtime) {
истинно) -
Используемые функции сортировки строк - это две следующие функции.
/* * text sorting */ "string-asc": function(a, b) { var x = a.toLowerCase(); var y = b.toLowerCase(); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }, "string-desc": function(a, b) { var x = a.toLowerCase(); var y = b.toLowerCase(); return ((x < y) ? 1 : ((x > y) ? -1 : 0)); },
Мои знания в javascript довольно бедны, какой был бы лучший подход здесь?
- Измените функцию сортировки строк, чтобы определить число, отформатированное в тысячах случаев, и выполните сравнение (я думаю, это было бы довольно медленно при большом наборе данных).
- Предоставить числовую функцию сортировки, предназначенную для форматирования чисел тысяч? В таком случае
- как бы вы это кодировали?
- Как я могу указать на функцию сортировки ядра, чтобы использовать эту специальную функцию цифровой сортировки?
Вот как выглядит сортировка: