合并和排序两个Parse对象数组

时间:2014-08-31 00:01:13

标签: javascript parse-platform

我有两个不同Parse类的数组。它们都具有相同的字段createdDate。是否可以单独查询它们,然后将它们合并在一起,按createdDate排序?

1 个答案:

答案 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

在现实生活中,queryFromParse1queryFromParse2将是查询结果的方式。

这里比较函数的技巧是Date.getTime()返回自1 January 1970 00:00:00 UTC以来的毫秒数。比较函数显示结果的方式是:

  • 否定意味着第一个<第二
  • 0表示首先===第二
  • 积极意味着第一个>第二