2016-08-14 8 views
0

Как отсортировать массив в NativeScript от раннего к последнему?Сортировка ListView в 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; 
}); 
Смежные вопросы