按日期对包含数字(日期)的文本行排序

Sort Text lines with included numbers (date) by date

本文关键字:日期 文本 排序 包含 数字      更新时间:2023-09-26

我有一个小问题。在数组中有一些像这样的文本行:

[
    '20140708_____AtestY.cm5',
    '20140711_____Ctestyy.cm5',
    '20140711_____Dtestzz.cm5',
    '20140711_____SBtestyy.cm5'
]

正如你所看到的,它们有一个日期(声明为数字-我稍后将它们分开),然后是文件名。我正试着按日期对它们进行排序,但这几乎只起作用。

代码为arrayFileData.sort().reverse()

按日期排序,但之后它也开始按字母排序。

是否可以说,只看日期(数字)?谢谢你的帮助。

您可以为[].sort提供自己的比较器函数,因此可以只查看前8个字符(日期部分):

arrayFileData.sort(function(a,b){
   return a.substr(0,8) - b.substr(0,8); // you could swap a and b here
                                         // to get the array sorted in reverse order
})
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort