2016-08-14 88 views
0

如何在NativeScript中将数组从最早到最新排序?在NativeScript中对列表视图进行排序

我的代码:

import observableArray = require("data/observable-array"); 
var orderListRaw = new observableArray.ObservableArray([]); 
var orderList = orderListRaw.sort((a:number, b:number) => {return a - b;}); 

     function news(args) { 
     fetch('https://testapi.local/', { 
     method: 'GET', 
     }).then(response => { 
     return response.json(); 
     }).then(function(r) { 
      var res = r.results; 
      orderList.length = 0 
      console.log(JSON.stringify(res)); 
      for (var i = 0; i < res.length; i++) { 
      var order = { 
       createdAt: res[i].createdAt, 
       title: res[i].title, 
       desc: res[i].desc, 
       image: res[i].image.url 
      } 
      orderList.push(order); 
      } 
     }, 
     function(e) { 
     console.log(e); 
     }); 
    }; 

的结果是,我的数组排序还是在最早到最晚的。 非常感谢

+0

所以你想按'createdAt'的顺序排序数组,不是吗? –

回答

4

您可以使用比较功能排序ObsevableArray但阵列在并从那里推一些实际值后,你应该使用它们:

orderList.sort(function (orderA, orderB) { 
     var createdAtA = orderA.createdAt; // what is createdAt!? probably normilize it for comparision 
     var createdAtB = orderB.createdAt; 
     return (createdAtA < createdAtB) ? -1 : (createdAtA > createdAtB) ? 1 : 0; 
    }); 
1

试试这个:

var moment = require("moment"); 
orderList.sort((left: any, right: any) => { 
    return moment(left.createdAt).isBefore(right.createdAt) ? -1 : 1; 
});