Javascript Datatables通过解析一列的值对其排序

Javascript Datatables通过解析一列的值对其排序,javascript,jquery,sorting,datatables,jquery-datatables,Javascript,Jquery,Sorting,Datatables,Jquery Datatables,有人能帮我按一列存储的格式(数字/年份)订购文档表吗?首先,我需要按年份订购,然后按编号订购一些小订单(意味着从最新文档到最旧文档的顺序,从最旧文档到最新文档的顺序相反) 输入数据: 1/15 3/15 4/12 41/12 30/12 30/110 21/02 128/02 有序数据: 30/110 3/15 1/15 41/12 30/12 4/12 128/02 21/02 首先,我想做两倍(年份数)并比较它们,但顺序不好,例如4/12、30/12之类的数据,因为(12.30

有人能帮我按一列存储的格式(数字/年份)订购文档表吗?首先,我需要按年份订购,然后按编号订购一些小订单(意味着从最新文档到最旧文档的顺序,从最旧文档到最新文档的顺序相反)

输入数据:

1/15
3/15
4/12
41/12
30/12
30/110
21/02
128/02
有序数据:

30/110
3/15
1/15
41/12
30/12
4/12
128/02
21/02
首先,我想做两倍(年份数)并比较它们,但顺序不好,例如4/12、30/12之类的数据,因为(12.30<12.4)

我创造了小提琴


Thx您

无需将单个值解析为单个值进行比较(例如,您建议的双精度值),您可以按照开头所述逐步比较两个值:

比较年份:如果它们不同,它们已经给出了两个元素的绝对顺序;如果它们相同,则顺序仅由文档编号给出

您还没有将年份值和文档编号解析为数字,导致将它们作为字符串进行比较

function compare_x_y (x, y) {
    var xx = x.split('/');
    var x_year = parseInt(xx[1], 10);
    var x_number = parseInt(xx[0], 10);
    var yy = y.split('/');
    var y_year = parseInt(yy[1], 10);
    var y_number = parseInt(yy[0], 10);
    var year_equals = x_year == y_year;

    return year_equals ? x_number < y_number : x_year < y_year;
}

jQuery.fn.dataTableExt.oSort["document-desc"] = function (x, y) {
        return compare_x_y (x, y) ? 0 : 1;
};

jQuery.fn.dataTableExt.oSort["document-asc"] = function (x, y) {
        return compare_x_y (x, y) ? 1 : 0;        
};
函数比较_x_y(x,y){
var xx=x.split('/');
var x_year=parseInt(xx[1],10);
var x_number=parseInt(xx[0],10);
变量yy=y.split('/');
变量y_year=parseInt(yy[1],10);
变量y_数=parseInt(yy[0],10);
var年=x年=y年;
返回年份_等于?x_数
这是你的电话号码