2014-08-31 3 views

ответ

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. И то, как функция сравнения показывает результат является:

  • отрицательных означают первые < вторых
  • 0 означает первый === вторых
  • положительных средства первого> второго
Смежные вопросы