首页 文章

如何从阵列中找到最大日期?

提问于
浏览 12
1

根据条件,如何以一定的间隔显示一个值 . 如果 master.date 小于或等于 report.report_date ,则当前显示所有用户 . 但是只需要显示最接近间隔值的用户 . 也就是说,如何显示 master.date 的最大日期来制作条件 .

HTML:

<div *ngFor="let report of reports">
  <div *ngFor="let team  of teams">
    <div *ngIf="report.teams_id==team.team_id">
      <div *ngFor="let master  of filteredMasters">
        <div *ngIf="master.teams_id==team.team_id">
          <div *ngIf="master.date <= report.report_date">
            {{master.name}}
          </div>
        </div>
      </div>
    </div>
  </div>  
</div>

TS:

masters: Masters[]
  filteredMasters = []

  private loadMasters() {
    this.mastersService.fetch().subscribe(
      masters => {
        this.masters = masters
        this.filteredMasters = this.masters.filter(masters => _.max(masters.date))
      }
   )
 }

1 回答

  • 0

    要获得最高日期:

    topDateLimit = Math.max(...this.masters.map(master => master.date));
    

    您现在可以在条件中比较它(由于每个日期都低于该限制,因此会显示所有内容,但这是您的要求)

    <div *ngIf="master.date <= topDateLimit">
    

    EDIT

    如果只想显示列表中的一个项目,请对其进行排序并使用 *ngForfirst 变量:

    this.masters = masters.sort((a, b) => b.date - a.date);
    
    <div *ngFor="let master  of filteredMasters; isFirst as first">
      <div *ngIf="isFirst">Master with the highest date</div>
    

相关问题