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

121
Vistas
Salida del mismo valor para dos funciones de clasificación separadas

Oye, haciendo simulacros de clasificación y encontré algo que no entiendo del todo.

 let numbers = [1,3,2,5,4]; let sortedHighesttoLowest = numbers.sort((a, b)=> ba); let sortedLowesttoHighest = numbers.sort((a, b)=> ab); console.log(sortedHighesttoLowest); console.log(sortedLowesttoHighest); output: [ 1, 2, 3, 4, 5 ] [ 1, 2, 3, 4, 5 ]

¿Cómo es que esto genera solo el valor de la última función dos veces a pesar de que los asigné a dos variables separadas?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Las matrices se pasan por referencia. Entonces, cuando asigna a su variable una matriz ordenada y luego vuelve a ordenar, la primera variable también se verá afectada. Puede usar el operador de propagación para evitar esto.

 let numbers = [1,3,2,5,4]; let sortedHighesttoLowest = [...numbers.sort((a, b)=> ba)]; let sortedLowesttoHighest = [...numbers.sort((a, b)=> ab)]; console.log(sortedHighesttoLowest); console.log(sortedLowesttoHighest); //output: //[ 1, 2, 3, 4, 5 ] //[ 1, 2, 3, 4, 5 ]

about 4 years ago · Juan Pablo Isaza Denunciar

0

La función de comparación funciona de forma poco diferente a algunos lenguajes tradicionales a los que podría estar acostumbrado.

En js, el valor de retorno del comparador es -1, 0 y 1. Aunque en muchos casos puede salirse con la suya usando el operador - menos.

Habiendo dicho eso, está pasando matriz como referencia aquí, lo que está causando el problema.

Intenta ejecutar esto:

 let numbers = [1,3,2,5,4]; let sortedHighesttoLowest = numbers.sort((a, b)=> a - b); console.log(sortedHighesttoLowest); let sortedLowesttoHighest = numbers.sort((a, b)=> b - a); console.log(sortedLowesttoHighest);

Además, te animo a que pases por aquí también.

about 4 years ago · Juan Pablo Isaza 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