【发布时间】:2023-03-04 20:14:01
【问题描述】:
我有以下日期数组,我想按加入顺序对其进行排序。我试过了,但没有得到肯定的结果。
var arr = [ [ '02/13/2015', 0.096 ],
[ '11/15/2013', 0.189 ],
[ '05/15/2014', 0.11 ],
[ '12/13/2013', 0.1285 ],
[ '01/15/2013', 0.12 ],
[ '01/15/2014', 0.11 ],
[ '02/14/2014', 0.11 ],
[ '03/14/2014', 0.11 ],
[ '01/15/2015', 0.096 ],
[ '07/15/2015', 0.096 ],
[ '04/15/2013', 0.12 ],
[ '04/15/2014', 0.11 ],
[ '05/15/2013', 0.12 ],
[ '06/14/2013', 0.12 ],
[ '06/16/2014', 0.11 ],
[ '07/15/2013', 0.12 ],
[ '07/15/2014', 0.11 ],
[ '03/16/2015', 0.096 ]]
我的代码
arr.sort(function(a,b){
return new Date(a[0][0]) - new Date(b[0][0]);
});
【问题讨论】:
-
对于初学者来说,
a是一个类似[ '11/15/2013', 0.189 ]的数组,所以a[0][0]将导致'1'.. 这仍然需要工作,但是因为new Date(a[0])- 例如new Date('11/15/2013')- 是定义不明确的行为。我推荐Moment.js 来处理这种情况,但也可以手动解析日期并使用new Date(y, m, d):在询问如何将字符串转换为日期时,不乏此类示例 -
关于如何“正确地”创建一个日期,参见stackoverflow.com/questions/5619202/…、stackoverflow.com/questions/22184747/…等
标签: javascript arrays sorting