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

137
Vistas
Realmente confundido acerca de ordenar en JS

hoy estaba escribiendo algo de código y me di cuenta de que no puedo hacer x.push(5, 9).sort(); //wrong ni puedo hacer x.sort(x.push(5, 9)); //wrong y tenía que hacer

 x.push(5, 9); x.sort();

Me preguntaba si no hay forma de que sea una sola línea.> Además, ¿cuál es la diferencia entre las dos líneas a continuación?

 x.sort((a, b) => a - b); x.sort();
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

.push devuelve la nueva longitud de la matriz, no la matriz mutada. Si desea empujar y ordenar al mismo tiempo, considere crear una nueva matriz y luego ordenarla.

 const sortedArr = [...arr, 5, 9].sort(); // or, .sort((a, b) => a - b)

.sort() sin ningún argumento ordena cada elemento de la matriz comparándolos lexiográficamente, como cadenas, lo que da como resultado resultados poco intuitivos como [1, 11, 2] .

Una devolución de llamada personalizada le permite personalizar el comportamiento: cuando un elemento de una matriz se compara con otro, en lugar de usar la comparación lexiográfica, se invoca la devolución de llamada y si el valor de retorno es negativo, positivo o 0 determina si los dos elementos se obtienen. ordenadas antes, después o en la misma posición (relativa) a la otra. Entonces, al ordenar una matriz de números numéricamente, siempre querrás usar algo como (a, b) => a - b .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Otra forma de empujar y ordenar en una línea es usar concat para crear una nueva matriz que luego se puede ordenar:

 const arr = [1, 6, 10] const sortedArr = arr.concat([5, 9]).sort((a, b) => a - b) console.log(sortedArr)

Como @CertainPerformance ya ha señalado, debe usar una devolución de llamada para ordenar correctamente los valores numéricos, ya que la ordenación de cadenas de números produce resultados incorrectos.

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