gpt4 book ai didi

javascript - 数据表通过解析其值对一列进行排序

转载 作者:行者123 更新时间:2023-11-28 00:26:49 25 4
gpt4 key购买 nike

有人可以帮助我以(数字/年份)格式对存储在一列中的文档表进行排序吗?首先,我需要按年份对它们进行排序,然后按编号进行一些小排序(意味着从最新文档到最旧文档排序,以及从最旧到最新的相反顺序)

输入数据:

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)

我创建了 fiddle http://jsfiddle.net/N3ckS/64/

谢谢你

最佳答案

您可以按照开始时描述的那样逐步比较两个值,而不是将各个值解析为单个值进行比较(例如您建议的 double 值):

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

您还错过了将年份和文档编号的值解析为数字,从而导致将它们作为字符串进行比较。

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;
};

这是updated fiddle

关于javascript - 数据表通过解析其值对一列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com