gpt4 book ai didi

javascript - 按子子嵌套数组的第一个值对 Angular 管道中的对象集合进行排序

转载 作者:行者123 更新时间:2023-11-28 17:55:12 24 4
gpt4 key购买 nike

注意:

  • 我是一名业余开发者,还有很多东西需要学习。
  • 我不认为这是重复的:其他一些问题是相关的(并且我尝试调整建议的解决方案)但没有成功。必须在 Angular 管道内使用它也变得更加困难,因为电影的属性是只读的。

该集合由电影组成:

interface Movie {
title: string;
schedules: [
{
theater: string,
start: Date[] // array of dates such as "2017-06-18T17:20:00.000+02:00"
// already sorted in ascending order
}
]
}

用户可以按开始时间进行过滤,因此我设置了两个连续的管道:

<div *ngFor="movies | moviesFilter:filter_parameters | moviesSort">
...

过滤器管道工作正常,但我刚刚花了最后 3 个小时(!)尝试编写排序管道的代码。

我想按最早开始时间对过滤后的集合进行排序,例如通过时间表[0].start[0]

Pipe({
name: 'moviesSort',
pure: true
})
export class MoviesSortPipe implements PipeTransform {
transform(movies:movie[]):movie[] {
...
...
return sorted_movies;
}
}

最佳答案

我的建议是放弃管道进行排序。在常规业务逻辑中进行排序。

Angular 团队在此解释: https://angular.io/guide/pipes#no-filter-pipe

Angular doesn't provide pipes for filtering or sorting lists. Developers familiar with AngularJS know these as filter and orderBy. There are no equivalents in Angular.

This isn't an oversight. Angular doesn't offer such pipes because they perform poorly and prevent aggressive minification.

关于javascript - 按子子嵌套数组的第一个值对 Angular 管道中的对象集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44617181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com