Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

262
Vistas
Ordenar un diccionario alfabéticamente por valor en JavaScript

Aquí está mi diccionario:

 const dict = { "key_1" : "z", "key_2" : "a", "key_3" : "b", "key_4" : "y" };

Quiero ordenarlo alfabéticamente por valor para que se vea así:

 const sorted_dict = { "key_2" : "a", "key_3" : "b", "key_4" : "y", "key_1" : "z" };

Esto es lo que creo que debería funcionar:

 var items = Object.keys(dict).map(function(key) { return [key, dict[key]]; }); items.sort((a, b) => a[1] - b[1]); console.log(items)

Pero no está ordenando en absoluto:

 [ [ "key_1", "z" ], [ "key_2", "a" ], [ "key_3", "b" ], [ "key_4", "y" ] ]

¿Por qué no funciona la clasificación?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Espero que este código te ayude

 const dict = { key_1: "z", key_2: "a", key_3: "b", key_4: "y", }; const sortable = Object.fromEntries( Object.entries(dict).sort(([, a], [, b]) => a.localeCompare(b)) ); console.log(sortable);

about 4 years ago · Santiago Trujillo Denunciar

0

No existe tal cosa como un diccionario ordenado en JavaScript. No hay garantía de que se conserve el orden de inserción ni el orden alfabético, incluso si a veces tienes la ilusión de que es así, nunca debes confiar en él. Si necesita orden, debe usar una matriz, un conjunto o un mapa

about 4 years ago · Santiago Trujillo Denunciar

0

El siguiente código ordenará el diccionario por el código de caracteres, es decir, el orden del alfabeto:

 const dict = { "key_1" : "z", "key_2" : "a", "key_3" : "b", "key_4" : "y" }; const sorted = Object.entries(dict) .sort(([, v1], [, v2]) => v1.toUpperCase().charCodeAt(0) - v2.toUpperCase().charCodeAt(0)) .reduce((obj, [k, v]) => ({ ...obj, [k]: v }), {}) console.log(sorted) //{key_2: 'a', key_3: 'b', key_4: 'y', key_1: 'z'}

Sin embargo, esto solo funcionará cuando el valor sea un carácter. ¿Qué para una función que también ordena valores más grandes?

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda