我的网页上显示了一个文件列表,这些文件按照创建日期的顺序排列。文件名按以下格式显示。
file_1_abc_10-23-2015.txt
file_2_fff_10-25-2015.txt
file_88_xyz_11-15-2015.txt
file_42_abc_11-17-2015.txt
file_9_ttt_11-25-2015.txt
我想根据它们包含的短语来组织它们 - 在这种情况下,我想按文件名中的第三个字符串短语进行排序,因此排序后的列表将如下所示
file_1_abc_10-23-2015.txt
file_42_abc_11-17-2015.txt
file_2_fff_10-25-2015.txt
file_9_ttt_11-25-2015.txt
file_88_xyz_11-15-2015.txt
//abc > abc > fff > ttt > xyz
我不确定是否应该使用像 jquery 这样的前端脚本来解决这个问题,或者是否可以使用模板引擎来完成这个问题(我正在使用 thymeleaf,但我不想将其作为 thymeleaf问题,因为输出列表只是基本的 HTML)。我刚刚开始这项任务,不想做得太过分 - 有什么想法吗?
非常感谢
最佳答案
假设文件列表是一个数组,您可以这样做:
fileNames.sort(function(a, b){
return a.split('_')[2].localeCompare(b.split('_')[2]);
});
请注意,您不需要分配返回值sort
到数组,因为 sort
工作到位。它更改变量本身。
.split('_')[2]
将字符串拆分为数组:['file', '1', 'abc', '10-23-2015 .txt']
,然后返回索引 2
处的值,即 'abc'
,然后在排序中使用该值。
关于javascript - 根据字符串对 HTML 列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33910759/