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

297
Vistas
¿Cómo puedo ordenar claves y valores en Map en Javascript?

Estoy tratando de obtener la clave que tiene el valor máximo en el map que he creado a través del new Map() y agregué las claves y los valores en él.

Ahora, quería obtener la clave cuyo valor es máximo y si dos claves tienen los mismos valores, quiero devolver la lexicográficamente más grande.

Por ejemplo: {'a': 20, 'b':20} entonces quiero que b sea devuelto.

mi código:

 var slowestKey = function(releaseTimes, keysPressed) { let map=new Map(); map.set(keysPressed[0],releaseTimes[0]); for(let i=0; i<releaseTimes.length-1; i++){ let time=releaseTimes[i+1]-releaseTimes[i]; map.set(keysPressed[i+1],time); } let max= Math.max(...map.values()); console.log(map) console.log(Math.max(...map.values())); };

Aporte:

 Input: releaseTimes = [9,29,49,50], keysPressed = "cbcd"

Expected Output: "c"

consola.log:

 Map(3) { 'c' => 20, 'b' => 20, 'd' => 1 } 20

¿Cómo puedo obtener la clave cuyo valor es máximo y lexicográficamente mayor?

about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

Al tener una matriz de pares clave/valor, puede ordenar por

  • valor descendente
  • tecla descendente

y toma el primer par (índice 0 ).

 const pairs = [['c', 9], ['b', 29], ['c', 49], ['d', 50], ['a', 50]]; pairs.sort((a, b) => b[1] - a[1] || b[0].localeCompare(a[0])); console.log(pairs[0]);

about 4 years ago · Santiago Gelvez Denunciar

0

Con el filter puede filtrar las keys cuyo valor = valor max , luego puede sort y obtener el primer elemento.

Entonces, el código adicional será

 const [key] = [...map.keys()].filter(key => { return map.get(key) === max }).sort((a, b) => a - b) 

 var slowestKey = function(releaseTimes, keysPressed) { let map=new Map(); map.set(keysPressed[0],releaseTimes[0]); for(let i=0; i<releaseTimes.length-1; i++){ let time=releaseTimes[i+1]-releaseTimes[i]; map.set(keysPressed[i+1],time); } let max= Math.max(...map.values()); const [key] = [...map.keys()].filter(key => { return map.get(key) === max }).sort((a, b) => a - b) console.log(key) }; slowestKey([9,29,49,50], "cbcd")

about 4 years ago · Santiago Gelvez 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