Допустим, я получил массив, который всегда был упорядочен в соответствии с его отметкой времени, как показано ниже:
// assuming the number means TIMESTAMP, and 0 means NOW.
[-2, -1, 0, 1, 2];
И я хочу перестроить его в значение ниже
[0, 1, 2, -2, -1];
Есть ли в любом случаеJavaScript может достичь этого?
Мое текущее решение:
const games = [-2, -1, 0, 1, 2];
const now = Moment();
const passedGames = [];
const upcomingGames = [];
for (let i = 0, l = games.length; i < l; i++) {
const game = games[i];
const hasBegun = Moment(game).isBefore(now);
hasBegun ? passedGames.push(game) : upcomingGames.push(game);
}
return [...upcomingGames, ...passedGames];
Причина, по которой я задаю этот вопрос.Я получаю множество игр NBA, каждая из которых имеет время начала, в начале мне нужно всегда показывать самую предстоящую игру, то есть массив всегда должен начинаться с нуля.Если какая-либо игра уже началась, мне нужно перенести ее на последнюю, поэтому я ожидаю, что результат будет выглядеть следующим образом.
[0, 1, 2, -2, -1];