是否有人可以帮我订购格式(数量/年)的文件表,这些文件存储在一列中?首先,我需要按年份订购它们,然后按数量订购一些小订单(意味着从最新的文件订购到最旧的订单和从最旧到最新的逆序)
输入数据:
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
首先,我想要制作双倍(year.number)并对它们进行比较,但它会严重排序,例如。数据如4 / 12,30 / 12因为(12.30 <12.4)
我创建了小提琴http://jsfiddle.net/N3ckS/64/
你好
答案 0 :(得分:1)
您可以像开头所描述的那样逐步比较两个值,而不是将单个值解析为单个值进行比较(例如,像您建议的那样):
比较年份:如果它们不同,它们已经给出了两个元素的绝对顺序;如果它们相同,则订单仅由凭证编号给出。
您还错过了将年份和文档编号的值解析为数字,从而将它们作为字符串进行比较。
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;
};