按日期排序

JAb*_*ams 5 javascript lodash reactjs

我有一个反应组件,它呈现过去发生的"会议"列表.

我试图让它对每次过去的会议进行排序,以便最近发生的那些会在最高层.

我正在检查会议是否发生在过去,如果是,请显示它.(这很好)

这是我的渲染方法:

render(){
let past_meetings = this.store.meetings.map((meeting, i) => {
  if (meeting.scheduled_for < moment.utc( new Date() ).format()){
    return (<MeetingItem meeting={meeting} key={`meeting-${meeting.id}`} />)
  } else {
    return ;
  }
})

return(
  <div className="">
    <div className=""> 
      <h3 className="">Past Meetings</h3>
      <div className="" > 
        {past_meetings}
      </div>
    </div> 

  </div>
  )
 }
Run Code Online (Sandbox Code Playgroud)

目前会议显示为:如果它在过去发生得更远,则显示在顶部.

我的目标是让它显示如下:如果它最近发生,显示在顶部.

用lodash的.sortBy()尝试过类似的东西:

let sorted_meetings = _.sortBy(past_meetings, function(e){
return - (new Date(e.scheduled_for))
}
Run Code Online (Sandbox Code Playgroud)

没有成功.

meeting.scheduled_for
// returns 2017-03-03T03:33:00.000Z
Run Code Online (Sandbox Code Playgroud)

试图比较scheduled_for,但也没有多少运气.

这可以用_ ??? 或任何其他方式?

Fuz*_*ree 9

您可以按降序使用sort()reverse()排序会议

var sorted_meetings = meetings.sort((a,b) => {
    return new Date(a.scheduled_for).getTime() - 
        new Date(b.scheduled_for).getTime()
}).reverse();
Run Code Online (Sandbox Code Playgroud)