Angular 6 按日期排序对象数组

新手上路,请多包涵

我尝试为我的 Angular 6 应用程序按日期对数组对象进行排序。数据具有字符串格式。我想知道是否有一个现有的模块可以在 Angular 中执行排序,或者我们必须在 Typescript 中构建排序函数。

角模板

<app-item *ngFor="let item of someArray"></app-item>

阵列

[
  {
    CREATE_TS: "2018-08-15 17:17:30.0",
    Key1: "Val1",
    Key2: "Val2",
  },
  {
    CREATE_TS: "2018-08-15 17:25:30.0",
    Key1: "Val1",
    Key2: "Val2",
  },
  {
    CREATE_TS: "2018-08-15 17:28:30.0",
    Key1: "Val1",
    Key2: "Val2",
  }
]

原文由 Huy Le 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

除了神秘的答案,您可能希望将排序值包装在访问器中以包含在模板中,在您的打字稿类中添加一个吸气剂:

 public get sortedArray(): YourItemType[] {
    return this.myArr.sort(...);
}

并在模板中:

 <app-item *ngFor="let item of sortedArray"></app-item>

或者,您可以在将数组放入组件类时对其进行排序并将排序后的版本存储在那里,但是访问器模式对于动态排序非常有用。

原文由 derelict 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于最近的第一:

 this.data.sort((a, b) => new Date(b.date1).getTime() - new Date(a.date1).getTime());

对于老年人优先:

 this.data.sort((b, a) => new Date(b.date1).getTime() - new Date(a.date1).getTime());

原文由 Pruthvi Raj 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题