簡體   English   中英

請如何按時間升序排序時間范圍?

[英]Please How do I sort range of time in ascending order?

我有一個包含“時間”和“投票”的對象數組,我希望按時間升序排序。 請我怎么做?

[ { time: '10:00 - 11:00', vote: 0 },
  { time: '7:00 - 8:00', vote: 2 },
  { time: '12:00 - 1:00', vote: 0 },
  { time: '11:00 - 12:00', vote: 2 },
  { time: '4:00 - 5:00', vote: 0 },
  { time: '2:00 - 3:00', vote: 0 },
  { time: '5:00 - 6:00', vote: 0 },
  { time: '9:00 - 10:00', vote: 2 },
  { time: '8:00 - 9:00', vote: 1 },
  { time: '1:00 - 2:00', vote: 1 },
  { time: '3:00 - 4:00', vote: 0 } ]

您可以使用string#localeCompare對時間進行排序。

 let data = [ { time: '10:00 - 11:00', vote: 0 }, { time: '7:00 - 8:00', vote: 2 }, { time: '12:00 - 1:00', vote: 0 }, { time: '11:00 - 12:00', vote: 2 }, { time: '4:00 - 5:00', vote: 0 }, { time: '2:00 - 3:00', vote: 0 }, { time: '5:00 - 6:00', vote: 0 }, { time:'9:00 - 10:00', vote: 2 }, { time: '8:00 - 9:00', vote: 1 }, { time: '1:00 - 2:00', vote: 1 }, { time: '3:00 - 4:00', vote: 0 } ]; data.sort((a,b) => a.time.localeCompare(b.time, undefined, {numeric:true})); console.log(data); 

 let data = [ { time: '10:00 - 11:00', vote: 0 }, { time: '7:00 - 8:00', vote: 2 }, { time: '12:00 - 1:00', vote: 0 }, { time: '11:00 - 12:00', vote: 2 }, { time: '4:00 - 5:00', vote: 0 }, { time: '2:00 - 3:00', vote: 0 }, { time: '5:00 - 6:00', vote: 0 }, { time:'9:00 - 10:00', vote: 2 }, { time: '8:00 - 9:00', vote: 1 }, { time: '1:00 - 2:00', vote: 1 }, { time: '3:00 - 4:00', vote: 0 } ], result = data.map(({time},i) => [new Date('1970/01/01 ' + time.split(" - ")[0]), i]) .sort((a,b) => a[0] - b[0]) .map(([,index]) => data[index]); console.log(result); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM