【发布时间】:2018-12-18 15:40:33
【问题描述】:
我有一个 javascript 对象数组,其中包含 5 个项目。每个都有一个字段,即日期字段。日期格式如下:Mon Dec 17 2018 19:28:29 GMT-0500 (Eastern Standard Time) {}
当我尝试这个时:
myArray.sort(function(a, b) { return b.CreateTime - a.CreateTime ;})
数组未排序,即CreateTime字段值最早的对象既不在顶部也不在底部,而是在中间。
我也试过这个:
myArray.sort(function(a, b) { return (new Date(b.CreateTime.getTime())) - (new Date(a.CreateTime.getTime())) ;})
没用。
也试过这个:
myArray.sort(function(a, b) { return (new Date(b.CreateTime)) - (new Date(a.CreateTime)) ;})
还是不行。
网上搜索说这是按日期对 JS 对象数组进行排序的方法。
那么,我错过了什么?
这是一个示例对象:
{
"Identifier": "prd17865EXC",
"Type": "large",
"Status": "available",
"UN": "u367892",
"DBN": "sprtdb",
"EP": {
"Prod": "excersizeMachine1",
"Number": 57477367
},
"CreateTime": "2018-12-18T00:28:29.803Z"
}
【问题讨论】:
-
什么是
CreateTime,它返回的究竟是什么? -
@Kenobi 问题是,这些字符串/数字究竟是什么样的?喜欢,在此处发布内容。
-
如果它们是日期实例,那么
typeof a.CreateTime将是"object"。像这样的字符串不能被可靠地解析为日期,尤其是末尾有那个流浪的{}。 -
如果它们是 真的 日期实例,那么
b.CreateTime - a.CreateTime肯定会起作用。 -
除非你给我们一个最小的例子,否则我们将无法提供帮助。您必须以可以重现问题的方式提供 myArray 的内容。
标签: javascript arrays sorting date