Itérer sur l'objet jQuery JSON dans l'ordre original
J'ai quelques données json dans une table est un objet qui est triés par date. La clé est un entier id et la valeur est un objet qui contient un horodatage. Cependant, lorsque j'essaie d'effectuer une itération sur ces données avec jQuery $.chaque fonction, les résultats de revenir triés par la clé à la place. Comment puis-je effectuer une itération sur ma collection d'objets dans leur ordre d'origine?
Exemple de Code:
$.getJSON(url, addPages);
function addPages(pageData) {
$.each(pageData, function(key,value){
alert(key+' : '+value);
}
}
source d'informationauteur Doug
Vous devez vous connecter pour publier un commentaire.
Vous pouvez copier les paires clé-valeur dans un tableau d'objets et de les utiliser de Tableau.sorte de les mettre en ordre.
Mon script de test:
Objets de l'onu-ensembles ordonnés. Vous ne pouvez pas spécifier un ordre dans un cross-browser plainte. Il n'y a pas de concept de l'original de la commande, sauf si c'est déjà commandé par une règle.
Afin de trier les données sur le serveur et puis énumérer dans le même ordre de tri.
Sinon le format JSON pour être
Vous pouvez parcourir le tableau avec une
for (i = 0; i < len; i++)
boucle et de la "garantuee" l'ordre d'origine.Dans firefox objets maintenir l'ordre.. dans google chrome, ils n'en ont pas. Aucune idée sur les autres navigateur, mais deux implémentations différentes montrent déjà que vous ne pouvez pas compter sur elle.
Si vous besoin de quelque chose commandés, l'utilisation d'une liste; si vous besoin de quelque chose avec les deux touches non numériques et un certain ordre, le plus simple serait d'utiliser une liste de [clé, valeur] listes:
Si par "original" tu veux dire que le timestamp dans l'objet, je ne pense pas qu'il soit infaillible d'autre choix que de d'abord explicitement trier le tableau, et seulement ensuite une boucle à travers elle.