淘汰赛排序有时会跳过一个记录

时间:2015-09-19 02:42:43

标签: jquery sorting knockout.js

我有一个处理排序的通用函数。当排序日期淘汰.sort似乎偶尔会跳过一个记录。下面是代码的片段。当字段是日期时,它将跳过记录并对其余字段进行排序。降序排序很好。

      self.OneTrueSortLocal = function (a, e) {

            var us = this;
            c = $(e.currentTarget),
            sortby = c.data('sortby').split('.')[1],
            dataSet = c.data('sortby').split('.')[0];

            if (c.is('.sorted_DSC')) {
                sortASC(); }
            function sortASC() {
                us[dataSet].sort(function (a, b) {
                    return a[sortby] == b[sortby]  ? 0 : a[sortby] < b[sortby] ? -1 : 1;
                });
            }

1 个答案:

答案 0 :(得分:0)

不是100%确定原因,但添加空值检查解决了这个问题。

 var aVal = a || '';
    var bVal = b || '';
    return aVal < bVal ? -1 : 1;