gpt4 book ai didi

jquery - 按日期内容排序 div

转载 作者:可可西里 更新时间:2023-11-01 13:51:10 26 4
gpt4 key购买 nike

我使用以下函数按日期对 div 数组进行排序 -

function sortDates(arrayContent) {
arrayContent.sort(function (a, b) {

var arrDate = $(a).find("#postedDate").text().replace(" posted at: ", "");
var brrDate = $(b).find("#postedDate").text().replace(" posted at: ", "");

var aTime = arrDate.split(' ')[1];
var aDate = arrDate.split(' ')[0];
a = new Date(aDate.split('/')[2], aDate.split('/')[1] - 1, aDate.split('/')[0], aTime.split(':')[0], aTime.split(':')[1]);

var bTime = brrDate.split(' ')[1];
var bDate = brrDate.split(' ')[0];
b = new Date(bDate.split('/')[2], bDate.split('/')[1] - 1, bDate.split('/')[0], bTime.split(':')[0], bTime.split(':')[1]);

return a > b ? -1 : a < b ? 1 : 0;
});
}

其中 arrayContent =

arrayContent[0] = "<div class="mHr" id="mFID"> 
<div id="postedDate"> posted at: <b>11/12/2015 11:12:16</b> </div>
</div>" // etc etc

此当前函数确实有效,但我希望对数百个 div 进行排序,并且使用此方法的运行时间很长。

当前的限制是我无法在填充 arrayContent 之前进行日期转换,并且添加到 arrayContent 的每个值始终是一个 HTML 字符串,因此我必须找到postedDate 然后相应地拆分它以创建一个有效的日期变量。

这是我想出的最好的方法,它可以工作,但是如前所述,它非常慢。

我还找到了this问题与我的做法大致相同,但没有更快的解决方案。

最佳答案

如果你想处理数百个元素,这是一项服务器任务。但仅出于测试目的,尝试这个小排序功能,它避免使用 jQuery,避免拆分方法,避免 Date 类,而是使用正则表达式来比较两个数字。我试过一个包含 100 个项目的数组,它需要 29.570 毫秒,而原始函数需要 996.119 毫秒。

var reg = /^.*?(\d{2})\/(\d{2})\/(\d{4})\s(\d{2})\:(\d{2})\:(\d{2}).*$/;

function sortDates(a, b){

var numberA = Number( a.replace(reg, "$3$2$1$4$5$6") );
var numberB = Number( b.replace(reg, "$3$2$1$4$5$6") );

return numberA - numberB;

}

arrayContent.sort(sortDates);

关于jquery - 按日期内容排序 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34222419/

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