javascript - 按 iso 字符串降序排序不起作用

标签 javascript isodate

期望的行为

按对象的 iso_string 属性对对象数组进行降序排序。

实际行为

数组顺序未更改。

我尝试过的

我一定在某个地方犯了一个简单的错误,因为多个帖子确认这是要使用的正确的 sort() 语法。

iso_string 值是使用 new Date().toISOString();

生成的

var dates = [{
  "formatted_date": "22/09/2018 @ 04:02pm",
  "iso_string": "2018-09-22T06:02:22.485Z"
}, {
  "formatted_date": "22/09/2018 @ 04:12pm",
  "iso_string": "2018-09-22T06:12:04.471Z"
}, {
  "formatted_date": "22/09/2018 @ 04:05pm",
  "iso_string": "2018-09-22T06:05:45.818Z"
}, {
  "formatted_date": "22/09/2018 @ 04:00pm",
  "iso_string": "2018-09-22T06:00:46.954Z"
}, {
  "formatted_date": "22/09/2018 @ 03:56pm",
  "iso_string": "2018-09-22T05:56:13.968Z"
}];

var sorted_dates = dates.sort(function(a, b) {
  return b.iso_string - a.iso_string;
});

console.log(sorted_dates);

编辑:我将值包装在new Date()中,并且它排序正确。

最佳答案

既然你有ISO 8601可以按字典顺序排序的日期,可以使用 string.localCompare()对其进行排序。

var dates = [{ "formatted_date": "22/09/2018 @ 04:02pm", "iso_string": "2018-09-22T06:02:22.485Z" }, { "formatted_date": "22/09/2018 @ 04:12pm", "iso_string": "2018-09-22T06:12:04.471Z" }, { "formatted_date": "22/09/2018 @ 04:05pm", "iso_string": "2018-09-22T06:05:45.818Z"}, { "formatted_date": "22/09/2018 @ 04:00pm", "iso_string": "2018-09-22T06:00:46.954Z" }, { "formatted_date": "22/09/2018 @ 03:56pm", "iso_string": "2018-09-22T05:56:13.968Z" }],
    sorted_dates = dates.sort((a, b) => b.iso_string.localeCompare(a.iso_string));

console.log(sorted_dates);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 按 iso 字符串降序排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52454337/

相关文章:

javascript - 从 ISO 日期转换为良好的格式化字符串

mongodb - 如何按 isodate 年、月、日进行分组?

javascript - MongoDB, Node : Query ISODate fields with a query not build directly in find operation

javascript - Nodejs Server 有没有可以集成的第三方推送服务?

javascript - 如何正确使用bootstrap-vue的面板?

javascript - 使用http请求从数据库获取数组

javascript - 为什么ajax调用失败。下面的代码重定向到authenticate.php而不是回显文本到login.html

javascript - 允许访客和站点成员使用 ajax、php/pdo、css、html 查看谁在线/登录