javascript - 如果日期是过去或将来,则删除 json 特定数据

标签 javascript angular typescript

我必须在我的应用程序中添加即将到来的类(class)和过去的类(class)组件。我能够存储类(class)表,然后使用来自后端的服务获取它们,但我只想在即将到来的类(class)组件中显示即将到来的类(class),并在过去的类(class)组件中显示过去的类(class)。这是我到目前为止所做的。我如何比较这些类,然后将它们从我在前端获得的 json 列表中删除

html

<tbody>
 <tr *ngFor = "let completeData of schedule">
   <td class="trim">{{completeData.date | date}}</td>
   <td class="trim">{{completeData.course}}</td>
   <td class="trim">{{completeData.location}}</td>
   <td class="trim">{{completeData.instructor}}</td>
   <td class="trim"><nb-checkbox [(ngModel)]="completeData.listing"></nb-checkbox></td>  
   <td class="trim">
    <nb-select>
     <nb-option value="2">Edit</nb-option>
     <nb-option value="3">Delete</nb-option>
     <nb-option value="4" (click)="viewDetails()">View</nb-option>
    </nb-select>
   </td>
 </tr>
</tbody>

component.ts 文件

schedule: ClassSchedule = new ClassSchedule();
ngOnInit() {
this._classService.GetClassData()
.subscribe((result: any) => {
  this.schedule = result;
})
}

日程安排界面

export interface IClassSchedule {
    course: string | undefined;    
    date: string | undefined;
    hour: string | undefined;
    minute: string | undefined;
    timeofday:  string | undefined;
    totalHours: string | undefined;
    //Other fields not added here
}

最佳答案

您可以使用 partition将其拆分为两个可观察对象。

ngOnInit() {
  const currentTimestamp = Date.now();
  const [futureCourses$, pastCourses$] = this._classService.GetClassData()
    .pipe(partition( item => item.timestamp > currentTimestamp ));

  futureCourses$.subscribe((result) => {
    // Here is the future ones
  })

  pastCourses$.subscribe((result) => {
    // Here is the past ones
  })
}

该示例假设您可以获取时间戳,以便于比较。如果你拿不到,那你可以用moment以便于比较。

关于javascript - 如果日期是过去或将来,则删除 json 特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58569823/

相关文章:

html - 如何将单列数据平均分布到两列数据中?

typescript - Atom typescript tsconfig 和 npm 配置

reactjs - 如果使用另一个可选 Prop ,我可以将 Typescript 必需的 Prop 更改为不需要吗?

javascript - 如何向cloud9中的server.js发送post请求

javascript - 我想要在 BootStrap Carousel 中的悬停元素上实现 1 x 1 滑动和悬停效果

javascript - 早于 9 的 IE 版本引发错误 "Expected identifier, string or number”

Angular2/Typescript + D3v4 - 手动包含打字?

Angular:ng-serve 忽略证书

javascript - 有没有办法在 Typescript 或 ES6 中查看类的所有静态变量和方法?

javascript - WordPress 中帖子的关联查询 - 两个问题