javascript - array sort 排序更接近今天的在前

查看:97
本文介绍了javascript - array sort 排序更接近今天的在前的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

使用 array.sort() 在做一个以时间为纬度的列表排序,
条件为 今天的在最上方,里今天越近的越靠前,但是未来的所有都在过去的前面
eg:
今天为 7 月 13日
2017.7.13
2017.7.14
2017.7.15
2017.7.12
2017.7.11
(实际为时间戳,为了方法表达以数字表示)

这样的排序应该怎么写 sort 的 function


给后来者看

因为项目是一个基于时间相关的,所以引用了 momentjs
如果你也需要 momentjs 可以参考我自答的方法,如果不需要引用 可以参看我采纳的答案

解决方案

看了你的方式,规则都自己写了就不需要 reverse 了

Object.keys(data).sort(function (a, b) {
  var da = moment(data[a].noteDate, 'x').diff(moment(), 'day')
  var db = moment(data[b].noteDate, 'x').diff(moment(), 'day')
  if (da * db < 0) { return da - db }
  return Math.abs(db) - Math.abs(da)
}).forEach(key => {
  // code
});

这篇关于javascript - array sort 排序更接近今天的在前的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆