Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何使用角度中的管道按日期字符串排序?_Angular_Typescript_Pipe - Fatal编程技术网

Angular 如何使用角度中的管道按日期字符串排序?

Angular 如何使用角度中的管道按日期字符串排序?,angular,typescript,pipe,Angular,Typescript,Pipe,我需要为我的帖子提供一个排序方法,我会得到所有帖子,但从最老的帖子开始,我希望能够根据属性[formattedDate:string]或至少基于[datePost:Date]将我的新帖子放在第一位。 我在整理帖子时遇到了问题,我尝试了很多选择,但总是出现同样的错误: ERROR TypeError: item.sort is not a function 我不知道下一步该怎么办。。请帮帮我:嗨,我问了一位朋友,他为nodeJs做了排序,他说他使用了reverse(); 于是我意识到,我只需要换

我需要为我的帖子提供一个排序方法,我会得到所有帖子,但从最老的帖子开始,我希望能够根据属性[formattedDate:string]或至少基于[datePost:Date]将我的新帖子放在第一位。 我在整理帖子时遇到了问题,我尝试了很多选择,但总是出现同样的错误:

ERROR TypeError: item.sort is not a function

我不知道下一步该怎么办。。请帮帮我:嗨,我问了一位朋友,他为nodeJs做了排序,他说他使用了reverse(); 于是我意识到,我只需要换一种方式,使用“日期”属性进行排序,就可以首先获得新帖子

这是最终代码:

 transform(array: PostG[], args: string): PostG[] {

    if(!array || array === undefined || array.length === 0) return null;
  
      array.sort((a: any, b: any) => {
        if (a.datePost > b.datePost) {
          return -1;
        } else if (a.datePost < b.datePost) {
          return 1;
        } else {
          return 0;
        }
      });
      console.log(array);
      return array;
    }

transform(数组:PostG[],args:string):PostG[]{
如果(!array | | array==undefined | | array.length==0)返回null;
array.sort((a:any,b:any)=>{
如果(a.datePost>b.datePost){
返回-1;
}否则如果(a.datePost

谢谢

Aqua,您应该使用
array.sort((a:any,b:any)=>{..}
而不是
array.forEach(item=>item.sort(…)
我也尝试过,但我得到了所有数组,没有任何更改。我使用了ngFor上的管道,没有对我的帖子进行排序,因为我认为它无法访问属性formattedDate。formattedDate是yyyy MM dd?的方式,如果有值应该工作。注意,在自己的函数排序中,可以添加一个
console.log(a,b)
export interface PostG {
    getTime();
    author:  { [key: string]: Author};
    datePost: Date;
    description: string
    dislike: number[];
    formattedDate: string;
    images: string[];
    like: number[];
    linkEdit: string;
    link:string;
    slug: string;
    title: string
    uniqueID: string;
}
  ngOnInit() {
      this.http.get(this.apiKey).subscribe((data: any) =>{   
        this.allPosts = data.data.post;
        console.log(data);
    })
  }

 transform(array: PostG[], args: string): PostG[] {

    if(!array || array === undefined || array.length === 0) return null;
  
      array.sort((a: any, b: any) => {
        if (a.datePost > b.datePost) {
          return -1;
        } else if (a.datePost < b.datePost) {
          return 1;
        } else {
          return 0;
        }
      });
      console.log(array);
      return array;
    }