Supposons que j'ai un objet Après avoir trié par des valeurs en ordre décroissant,
La sortie souhaitée: Comment puis-je atteindre cela efficacement? Je suis venu savait que nous ne pouvons pas voulons trier les clés d'objet JS en fonction des valeurs, car l'ordre des clés est aléatoire à chaque fois. P> {'a': 20, 'B': 6, 'c': 21, 'd': 12} code> p> p>
clés: ['C', 'A', 'D', 'B']] CODE> et Valeurs: [21,20,12,6] Code> < / p>
4 Réponses :
Je suis venu savoir que nous ne pouvons pas nous ne pouvons pas trier les clés d'objet JS en fonction des valeurs, car l'ordre des clés est aléatoire à chaque fois. P>
Ce n'est pas vrai (ce n'est pas aléatoire, et ce n'est pas différent à chaque fois), mais trier JavaScript les objets em> est presque jamais utile. p>
Vous avez plusieurs options pour obtenir le tableau Vous avez montré. Un simple est d'utiliser
objet.entries code> pour obtenir une matrice de[touche, valeur] code> tableaux, puisTrier code> qui, puis obtenez juste le Touches de l'it viamappe code>: p>p>
const obj = {'a':20,'b':6,'c':21,'d':12}; const keys = []; const values = []; for (const [k, v] of Object.entries(obj).sort(([k1, v1], [k2, v2]) => v2 - v1)) { keys.push(k); values.push(v); } console.log(keys); console.log(values);
Monsieur Comment puis-je obtenir les valeurs dans un tableau séparé? @ T.J.
@Binayakgs - Vous souhaitez avoir une liste code> Touches code> et un parallèle valeurs code> tableau?
Oui. C'est là que je suis fait face à un blocage.
@Binayakgs - ajouté que.
Essayez ceci.
p>
const list = {'a':20,'b':6,'c':21,'d':12};
let myObject = Object.fromEntries(Object.entries(list).sort( (a,b) => b[1] - a[1] ));
Object.prototype.mySplit = function() {
return Object.keys(this).map((key) => {
return {
key: key,
value: this[key]
};
});
}
let keys = [];
let values = [];
let properties = myObject.mySplit();
for (var i = 0; i < properties.length; i++) {
keys.push(properties[i]['key']);
values.push(properties[i]['value']);
}
console.log(keys);
console.log(values);[
{ key: 'c', value: 21 },
{ key: 'a', value: 20 }
{ key: 'd', value: 12 }
{ key: 'b', value: 6 }
]
1) Obtenez des touches d'un objet
2) Touches de tri basées sur la comparaison de valeur P> Réponse p> {
sortedKeys: ["c", "a", "d", "b"]
sortedValues: [21, 20, 12, 6]
}