如何排序数组在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);
});
};
结果是,我的数组仍然按照最早到最近的顺序排序。非常感谢
你可以使用比较函数来对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;
});
试试这个:
var moment = require("moment");
orderList.sort((left: any, right: any) => {
return moment(left.createdAt).isBefore(right.createdAt) ? -1 : 1;
});