
从最新到最旧排序并显示列表前五项
问题描述: 如何对列表进行排序,使其按时间戳从新到旧排列,并仅显示前五项?现有代码虽然能正确排序时间戳,但显示结果却有误。
解决方案:
原始代码的问题在于:
重复排序: 每次循环列表项时都进行排序,导致排序结果错误。显示逻辑错误: 列表项的显示判断逻辑不准确,无法按照时间顺序显示。
以下代码提供了正确的排序和显示方法:
$(function() { sortAndDisplayTopFive();});function sortAndDisplayTopFive() { const listItems = $(".i-list li"); const timestamps = []; // 提取时间戳并转换为数字 listItems.each(function() { const timestampStr = $(this).find(".time").text().replace(/-/g, "/"); const timestamp = Date.parse(timestampStr); timestamps.push({ timestamp, element: this }); }); // 按时间戳从新到旧排序 timestamps.sort((a, b) => b.timestamp - a.timestamp); // 隐藏所有列表项,然后显示前五项 listItems.hide(); timestamps.slice(0, 5).forEach(item => $(item.element).show());}
此代码首先提取所有列表项的时间戳,并将其与对应的DOM元素一起存储在一个数组中。然后,它使用sort方法按时间戳从新到旧排序。最后,它隐藏所有列表项,然后仅显示排序后的前五项。 这种方法避免了重复排序,并确保了正确的显示顺序。 此外,代码使用了更简洁的replace(/-/g, "/")来替换所有”-“字符,并直接使用Date.parse转换时间字符串,提高了代码的可读性和效率。
以上就是如何高效显示列表中按时间从新到旧排序的前5条数据?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1560386.html
微信扫一扫
支付宝扫一扫