gpt4 book ai didi

javascript - 有没有更好的方法来智能排序日期?

转载 作者:行者123 更新时间:2023-12-03 12:07:34 25 4
gpt4 key购买 nike

我有一个日期数组,看起来像这样:

var dates = [
{ day: 14, month: 4 },
{ day: 28, month: 4 },
{ day: 29, month: 11 },
{ day: 2, month: 9 }
];

我想从现在是八月的 Angular 对它们进行排序。我的意思是,第 11 个月比第 4 个月更近。我想了很多,最后想出了this solution.
首先,由于连接 JSON 数组的问题,它实际上不起作用,但这是一个小问题。
我认为从效率或其他 Angular 来看,这是一个非常糟糕的方法。你能想出更好的办法吗?谢谢!

最佳答案

您可以查看这个JS Bin 。主要思想是获取当前月份并按当前月份偏移数组中的每个月。然后,如果结果为负,这意味着它是当前结果一个月后的结果,我会尝试弄清楚它的顺序是什么。

更改后的代码如下:

Dates.prototype.sort = function() {
var date = new Date();
var currentMonth = date.getMonth() + 1;
for(var j = 0; j < this.arr.length - 1; j++) {
for (var i = 0; i < this.arr.length - 1; i++) {
var month = this.arr[i].month - currentMonth;
var nextMonth = this.arr[i + 1].month - currentMonth;
if(month < 0){
month = 12 + month;
}
if(nextMonth < 0){
nextMonth = 12 + nextMonth;
}
if (month > nextMonth)
this.switch(i, i + 1);

else if (month == nextMonth)
if (this.arr[i].day > this.arr[i + 1].day)
this.switch(i , i + 1);

}
}
};

关于javascript - 有没有更好的方法来智能排序日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25113909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com