2016-12-16 81 views
1

是否可以使用Angular2中的Firebase對值進行降序排序?在我的例子中,我想使用時間戳字段作爲排序值。排序數據降序Firebase Angular2

我已經嘗試過這種方法,但在降序排序中沒有成功。

this.items = af.database.list('/items', { 
     query: { 
     orderByChild: 'timestamp' 
     } 
    }); 

一種選擇,我能想到,他們到達將推動這些值到一個新的數組,然後返回數組,但似乎不理想。

+0

你有沒有嘗試過嗎? http://stackoverflow.com/search?q=%5Bfirebase%5D+sort+descending –

回答

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"] 
+0

Array.Sort文檔: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects /陣列/排序 – wickdninja