Javascript 根据字符串对HTML列表排序
我的网页上显示了一个文件列表,这些文件按照创建日期的顺序排列。文件名以以下格式显示Javascript 根据字符串对HTML列表排序,javascript,jquery,html,Javascript,Jquery,Html,我的网页上显示了一个文件列表,这些文件按照创建日期的顺序排列。文件名以以下格式显示 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-
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]);
});
请注意,您不需要将的返回值指定给数组,因为它可以就地工作。它改变变量本身
.split(“”“)[2]
将字符串拆分为一个数组:['file','1','abc','10-23-2015.txt']
,然后返回索引2
处的值,即'abc'
,然后在排序中使用该值。假设文件列表是一个数组,可以执行以下操作:
fileNames.sort(function(a, b){
return a.split('_')[2].localeCompare(b.split('_')[2]);
});
请注意,您不需要将的返回值指定给数组,因为它可以就地工作。它改变变量本身
.split(“"”)[2]
将字符串拆分为一个数组:['file','1','abc','10-23-2015.txt']
,然后返回索引2
处的值,即'abc'
,然后在排序中使用该值。您可以使用简单的js脚本执行此操作。您是如何获得该列表的?这只是一个发送到客户端的数组吗?那么,Kurai,我的回答对你有什么帮助吗?你可以用一个简单的js脚本来完成。你是如何得到这个列表的?这只是发送给客户端的一个数组吗?那么,Kurai,我的回答对你有帮助吗?