Agrego esta respuesta porque veo que este hilo está referenciado al marcar duplicados y algunas soluciones más nuevas y más limpias están disponibles hoy en día.
Otra solución es utilizar una biblioteca de utilidad como Lodash y usar su función Collection#sortBy
. Produce un código muy limpio y promueve un estilo de programación más funcional, lo que da como resultado menos errores. En un vistazo queda claro cuál es la intención del código. cuestión
de OP sólo se puede resolver como:
var sortedObjs = _.sortBy(data, 'date');
Más información? P.ej. tenemos los siguientes objetos anidados:
var users = [
{ 'user': {'name':'fred', 'age': 48}},
{ 'user': {'name':'barney', 'age': 36 }},
{ 'user': {'name':'fred'}},
{ 'user': {'name':'barney', 'age': 21}}
];
Ahora podemos utilizar la abreviatura _.propertyuser.age
para especificar la ruta de acceso a la propiedad que debe ser igualada. Ordenaremos los objetos del usuario por la propiedad de edad anidada. Sí, ¡permite la coincidencia de propiedades anidadas!
var sortedObjs = _.sortBy(users, ['user.age']);
¿Quiere invertir? No hay problema. Use _.reverse.
var sortedObjs = _.reverse(_.sortBy(users, ['user.age']));
desea combinar ambos usando Chaining en su lugar?
var sortedObjs = _.chain(users).sortBy('user.age').reverse().value();