我正在尝试根据当前时间对数组进行排序。这是我的数组
[
{
"time":"10:00:00"
},
{
"time":"10:30:00"
},
{
"time":"13:30:00"
},
{
"time":"14:30:00"
}
]
我想返回一个数组,其中最接近的当前时间在第一个索引上,然后下一个关闭(直到即将到来的时间),而上一个时间将是最后一个项目。例如,如果当前时间是1pm
,则预期结果将是
[
{
"time":"13:30:00"
},
{
"time":"14:30:00"
},
{
"time":"10:00:00"
},
{
"time":"10:30:00"
}
]
我该如何实现?
答案 0 :(得分:1)
虽然使用UNIX时间戳来表示时间会更好,但是您可以执行以下操作:
var times = [
{
"time":"10:00:00"
},
{
"time":"10:30:00"
},
{
"time":"13:30:00"
},
{
"time":"14:30:00"
}
];
var currentTime = "13:00:00";
var sortedTimes = times.sort((a, b) => {
if (a.time < currentTime && b.time > currentTime) return 1;
else if (a.time > currentTime && b.time < currentTime) return -1;
else if (a.time < b.time) return -1;
return 1;
});