Tri d'un tableau en fonction de la valeur de l'horodatage de JSON Response

J'ai une valeur d'horodatage dans ma réponse json et je peux analyser correctement cette valeur. Chaque image possède sa propre valeur de l'horodatage et je dois l'afficher dans la valeur de l'horodatage croissante. Cela signifie que la dernière image mise à jour devrait être chargée d'abord dans ma demande.

L'horodatage est dans le format suivant dans la réponse JSON:

Brand1{ "FileName": "520120427043622011.jpg", "UpdateTimeStamp": "Jun 10, 2013 8:31:23 AM" } Brand2{ "FileName": "Kung_Fu_Fingers.jpg", "UpdateTimeStamp": "Jun 5, 2013 6:51:12 AM" } Brand3{ "FileName": "google_logo1.jpg", "UpdateTimeStamp": "Jun 10, 2013 8:31:23 AM" } 

Quelqu'un peut-il me guider pour trier les images des trois marques ci-dessus en fonction de la valeur de l'horodatage en utilisant les fonctions Javascript ou jQuery. J'ai utilisé la fonction de tri après avoir divisé la valeur de la dat, mais elle tri des mois seulement dans l'ordre alphabétique. Aidez-moi à trouver une solution pour cela.

Merci d'avance.

Vous pouvez définir l'insertion-tri, qui s'exécute dans O (n) -time (le meilleur, le tableau est trié) et O (n ^ 2) le tableau n'est pas trié (le pire des cas):

 function insertionSort(files,attrToSortBy){ for(var k=1; k < files.length; k++){ for(var i=k; i > 0 && new Date(files[i][attrToSortBy]) < new Date(files[i-1][attrToSortBy]); i--){ var tmpFile = files[i]; files[i] = files[i-1]; files[i-1] = tmpFile; } } } var files = [{ "FileName": "520120427043622011.jpg", "UpdateTimeStamp": "Jun 10, 2013 8:31:23 AM" },{ "FileName": "Kung_Fu_Fingers.jpg", "UpdateTimeStamp": "Jun 5, 2013 6:51:12 AM" },{ "FileName": "google_logo1.jpg", "UpdateTimeStamp": "Jun 12, 2013 8:31:23 AM" }]; insertionSort(files,"UpdateTimeStamp"); console.log('files: ',files); 
 var files = [{ "FileName": "520120427043622011.jpg", "UpdateTimeStamp": "Jun 10, 2013 8:31:23 AM" },{ "FileName": "Kung_Fu_Fingers.jpg", "UpdateTimeStamp": "Jun 5, 2013 6:51:12 AM" },{ "FileName": "google_logo1.jpg", "UpdateTimeStamp": "Jun 10, 2013 8:31:23 AM" }]; files.sort(function(a, b){ var d1 = new Date(a.UpdateTimeStamp); var d2 = new Date(b.UpdateTimeStamp); return d1-d2; // d2-d1 for descending order }); 

MODIFIER:

Pour tableau d'horodatages

 var updateTimeStamps = ["Aug 10, 2013 8:31:23 AM","Jun 5, 2013 6:51:12 AM" ,"May 10, 2013 8:31:23 AM"]; updateTimeStamps.sort(function(a, b){ var d1 = new Date(a); var d2 = new Date(b); return d1-d2; // d2-d1 for descending order }); console.log(updateTimeStamps); 

EDIT 2: Pour garder deux tableaux et tri

 var imgs = ["img1", "img2", "img3"]; var times = ["Jul 10, 2013 8:31:23 AM","Jan 5, 2013 6:51:12 AM" ,"Feb 10, 2013 8:31:23 AM"]; var sorting = []; times.sort(function(a, b){ var d1 = new Date(a); var d2 = new Date(b); var d = d1-d2; // d2-d1 for descending order sorting.push(d); return d; }); imgs.sort(function(a, b){ return sorting.shift(); }); console.log(times); console.log(imgs);