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

时间:2014-08-11 12:58:22

标签: javascript arrays sorting

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

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

正如你所看到的那样,他们有一个日期(声明为数字 - 我以后将它们分开),然后是文件名。 我正试图按日期对它们进行排序,这种方法几乎无效。

使用代码arrayFileData.sort().reverse()我按日期排序,但之后它也开始按字母顺序排序。

可以说,只查看日期(Nubers)? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以将自己的比较器功能提供给[].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