【问题标题】:Sort data descending list Firebase Angular2排序数据降序列表 Firebase Angular2
【发布时间】:2017-05-02 07:46:48
【问题描述】:
是否可以在 Angular2 中使用 Firebase 对值进行降序排序?在我的示例中,我想使用时间戳字段作为排序值。
我已经尝试过这种方法,但未能成功对其进行降序排序。
this.items = af.database.list('/items', {
query: {
orderByChild: 'timestamp'
}
});
我能想到的一个选择是在这些值到达时将它们推送到一个新数组中,然后返回该数组,但这似乎不是最理想的。
【问题讨论】:
标签:
angular
firebase
firebase-realtime-database
angularfire2
【解决方案1】:
我不熟悉 Firebase 查询,但如果接收已排序的数据不是严格要求,您可以在收到数据后简单地对数据进行排序。
//using ES 2016 syntax (copy and paste in latest Chrome dev tools to try out)
var times = [new Date('1/1/16').toISOString(),new Date('1/2/16').toISOString(),new Date('1/3/16').toISOString()];
console.log(times);
// ["2016-01-01T05:00:00.000Z", "2016-01-02T05:00:00.000Z", "2016-01-03T05:00:00.000Z"]
var sortedDesc = times.sort((t1,t2) => {
if(t1 === t2) return 0;
if(t1 > t2) return -1;
if(t1 < t2) return 1;
});
console.log(sortedDesc);
// ["2016-01-03T05:00:00.000Z", "2016-01-02T05:00:00.000Z", "2016-01-01T05:00:00.000Z"]