Si j'ai cet objet JS Literal: Comment puis-je créer un nouvel objet triés littéral: p>
3 Réponses :
Les propriétés de l'objet ne sont pas une commande spécifique (la commande dépend de la mise en œuvre) et vous ne pouvez pas trier les propriétés.
Vous devez conserver un tableau de clés et trier en conséquence, par exemple: P>
var keys = []; for(var key in obj) { if(obj.hasOwnProperty(key)) { keys.push(key); } } keys.sort(function(a, b) { return obj[a] - obj[b]; });
re: Comment trier un objet JS?
Réponse: Vous ne pouvez pas. Donc, au lieu de cela, vous avez besoin d'une structure de données plus sophistiquée. Vous avez de nombreuses options: p>
Je recommande une solution 3 car il utilise la mécanique JS pour gérer la commande. p>
Exemples: P>
// Object holds sort order: (Solution 2) var foo = { Suzy: {v: 4, order: 0}, Billy: {v: 5, order: 1}, Jimmy: {v: 2, order: 2}, Sally: {v: 1, order: 3} }; // Array holds keys: (Solution 3) var woof = [ {k: 'Suzy', v: 4}, {k: 'Billy', v: 5}, {k: 'Jimmy', v: 2}, {k: 'Sally', v: 1} ]; // Sort the woof array by the key names: woof.sort(function(a, b) { return a.k.localeCompare(b.k); }); // The third key and value: woof[2].k; // the third key woof[2].v; // the third value
Merci de me mettre sur la bonne voie et de tous les détails. Je vais essayer # 3.
Merci pour cela, j'aime aussi 3. Notez cependant que le tri ne semble pas fonctionner. Essayez woof.sort (fonction (a, b) {renvoyer a.k.localecomare (b.k);});
Je crée un énorme objet littéral d'une structure JSON. Mon problème est que je dois ajouter des propriétés aux objets imbriqués entre d'autres propriétés. Je leur ai donné des identités, mais ce n'est pas très bon parce que je dois faire une boucle récursive à travers tous les nœuds et ses enfants. Pourriez-vous suggérer une structure de données spéciale? Peut-être stocker des références d'objets dans une ordonnance?
@Philx_x Vous devez poser votre question comme une nouvelle question sur le débordement de la pile
active la commande de la propriété objet est prévisible em> depuis ES2015. Qui est incroyable. P>
Cela signifie-t-il que vous pouvez montrer comment trier l'objet?
Ceci est une réponse de liaison uniquement. Extraire ou intrépide les informations nécessaires et l'ajoutez à la réponse. Link Seules les réponses ne sont indésirables car elles sont inutiles lorsque le lien diminue. En règle générale, une réponse doit toujours tenir en soi sans s'appuyer sur des informations externes. Ajout d'un extrait de vue de la manière dont vous trieriez un objet aiderait cette réponse à une bonne affaire.
Vous ne pouvez pas trier un objet JS comme indiqué dans votre question. Impossible. Pourquoi? Parce que les propriétés de l'objet JS ne sont pas commandées. Passer à un tableau. Les matrices sont commandées, les objets ne sont pas.