javascript - array sort 排序更接近今天的在前
本文介绍了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屋!
查看全文