我正在使用jquery.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的了解很差,这里最好的方法是什么?
- 调整字符串排序函数以检测千数格式的大小写,并进行比较(我想这在大型数据集上会很慢)。
- 提供专用于千位格式的数字排序功能? 在这种情况下
- 你会怎么编码?
- 我如何向核心排序功能指示使用这个特殊的数字排序功能?
这是排序现在的样子: