我有两个不同Parse类的数组。它们都具有相同的字段createdDate
。是否可以单独查询它们,然后将它们合并在一起,按createdDate
排序?
答案 0 :(得分:4)
我假设你得到两个结果数组,而不是两个对象对吗?否则,您只需按created_date
字段比较两个对象即可。因此,如果您将查询结果作为两个数组,则可以concat
它们,然后通过自定义比较函数执行sort
。像这样:
var queryFromParse1 = function () {
return [{name: 'obj1', created_date: new Date('2014-10-10')}];
};
var queryFromParse2 = function () {
return [{name: 'obj2', created_date: new Date('2012-10-10')}];
};
var array1 = queryFromParse1();
var array2 = queryFromParse2();
var sorted = array1.concat(array2).sort(function (a, b) {
// For real parse object, you need to do a.get('createdAt')
return a.created_date.getTime() - b.created_date.getTime();
});
console.log(sorted[0].name);
console.log(sorted[1].name);
// this prints out obj2, obj1
在现实生活中,queryFromParse1
和queryFromParse2
将是查询结果的方式。
这里比较函数的技巧是Date.getTime()
返回自1 January 1970 00:00:00 UTC
以来的毫秒数。比较函数显示结果的方式是: