2010-10-04 123 views
14

Sé que esto debe ser relativamente simple, pero tengo un conjunto de datos de JSON que me gustaría ordenar por fecha. Hasta el momento, he tenido problemas en todo momento. Ahora tengo la fecha almacenada como this.lastUpdated. Tengo acceso a jquery si eso ayuda, pero me doy cuenta de que el .sort() es JS nativo. Gracias de antemano.ordenar JSON por fecha

+0

¿Qué formato es su campo de fecha? – orolo

+2

mira aquí pregunta similar http://stackoverflow.com/questions/979256/how-to-sort-a-json-array –

+0

JSON es un formato serializado (una cadena). No creo que pueda hacer nada hasta que lo convierta en un objeto (función de framework eval o custom js). –

Respuesta

29

Asumiendo que usted tiene una gran variedad de objetos JavaScript, sólo tiene que utilizar una función de ordenación:

function custom_sort(a, b) { 
    return new Date(a.lastUpdated).getTime() - new Date(b.lastUpdated).getTime(); 
} 
var your_array = [ 
    {lastUpdated: "2010/01/01"}, 
    {lastUpdated: "2009/01/01"}, 
    {lastUpdated: "2010/07/01"} 
]; 

your_array.sort(custom_sort); 

La matriz sort método ordena una matriz mediante una función de devolución de llamada que se transmite pares de elementos de la matriz.

  • Si el valor de retorno es negativo, el primer argumento (a en este caso), precederá al segundo argumento (b) en la matriz ordenada.
  • Si el valor devuelto es cero, su posición con respecto a la otra permanece inalterada.
  • Si el valor devuelto es positivo, b precede a en la matriz ordenada.

Puedes seguir cualquier pregunta sobre el método here.

+0

JSON no personalizado no es un objeto de matriz. '.sort()' solo está disponible en matrices. –

+0

¡Disculpen las descalificaciones! Fue un accidente. No estaba prestando atención cuando estaba haciendo clic en la página y ahora no puedo cambiarlo. – Whitecat

+0

No se preocupe, ¡gracias por la explicación! –

Cuestiones relacionadas