【问题标题】:How to sort an array by date into angular?如何按日期将数组排序为角度?
【发布时间】:2020-04-18 12:47:21
【问题描述】:

我从我的数据库中获取数据,将其插入一个数组并显示该数组。现在我想显示从最近到最旧日期的数组。我把我的代码放在下面,但它不起作用,没有错误但它没有排序

this.perturbationsBDDFavorite.push({
                      id : doc.data().id,
                      userId: doc.data().userId,
                      nomAgence: doc.data().nomAgence,
                      icon: doc.data().icon,
                      numero:doc.data().numero,
                      depart: doc.data().depart,
                      arrive: doc.data().arrive,
                      horaireDepart:doc.data().horaireDepart,
                      horaireArrive:doc.data().horaireArrive,
                      suppression: doc.data().suppression,
                      retard: doc.data().retard,
                      suggestion: doc.data().suggestion,
                      vehiculeSurcharge: doc.data().vehiculeSurcharge,
                      proprete: doc.data().proprete,
                      securite: doc.data().securite,
                      tempsDeclaration: doc.data().tempsDeclaration,
                      dateDeclaration: doc.data().dateDeclaration,
                      timeRetard: doc.data().timeRetard,
                      commentaire: doc.data().commentaire,
                      status: doc.data().status,
                      urlfacebook: doc.data().urlfacebook,
                      userDeleted: doc.data().userDeleted
                    });
                    console.log(this.perturbationsBDDFavorite);
                    for(let i = 0; i < this.perturbationsBDDFavorite.length; i++){

                    this.perturbationsFavorite = this.perturbationsBDDFavorite.sort((val1, val2) =>{
                      val1.dateDeclaration =  new Date(val1.dateDeclaration.seconds*1000);
                      val2.dateDeclaration = new Date(val2.dateDeclaration.seconds*1000);
                      return Math.abs(val1.dateDeclaration.getSeconds() - val2.dateDeclaration.getSeconds());
                    } )
                    }
                    }

【问题讨论】:

标签: angular typescript ionic-framework


【解决方案1】:

在无需循环的数组中插入数据后尝试使用此代码。您的日期似乎不是日期而是时间戳,因此您可以按原样进行比较。

this.perturbationsBDDFavorite
    .sort((val1, val2) => {
      if (val1.dateDeclaration > val2.dateDeclaration) {
        return -1;
      }
      if (val1.dateDeclaration < val2.dateDeclaration) {
        return 1;
      }
      return 0;
    });

【讨论】:

    猜你喜欢
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2017-10-29
    • 1970-01-01
    相关资源
    最近更新 更多