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

190
Vistas
Ordenar una matriz para que los valores nulos siempre sean los últimos

Necesito ordenar una matriz de cadenas, pero lo necesito para que nulo sea siempre el último. Por ejemplo, la matriz:

 var arr = [a, b, null, d, null]

Cuando se ordena de forma ascendente, necesito que se ordene como [a, b, d, null, null] y cuando se ordena de manera descendente, necesito que se ordene como [d, b, a, null, null] .

es posible? Probé la solución que se encuentra a continuación, pero no es exactamente lo que necesito.

¿Cómo se pueden comparar valores de cadena y numéricos (respetando los valores negativos, con nulo siempre al final)?

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

0

Echa un vistazo a .sort() y hazlo con una clasificación personalizada. Ejemplo

 function alphabetically(ascending) { return function (a, b) { // equal items sort equally if (a === b) { return 0; } // nulls sort after anything else else if (a === null) { return 1; } else if (b === null) { return -1; } // otherwise, if we're ascending, lowest sorts first else if (ascending) { return a < b ? -1 : 1; } // if descending, highest sorts first else { return a < b ? 1 : -1; } }; } var arr = [null, 'a', 'b', null, 'd']; console.log(arr.sort(alphabetically(true))); console.log(arr.sort(alphabetically(false)));

over 4 years ago · Santiago Trujillo Denunciar

0

Use una función de comparación personalizada que discrimine los valores null :

 arr.sort(function(a, b) { return (a===null)-(b===null) || +(a>b)||-(a<b); });

Para el orden descendente de los valores no nulos, simplemente intercambie a y b en la comparación directa:

 arr.sort(function(a, b) { return (a===null)-(b===null) || -(a>b)||+(a<b); });
over 4 years ago · Santiago Trujillo Denunciar

0

ascendente

 arr.sort((a, b) => (a != null ? a : Infinity) - (b != null ? b : Infinity))

Descendente

 arr.sort((a, b) => (b != null ? b : -Infinity) - (a != null ? a : -Infinity))

(Para el orden descendente si no tiene valores negativos en la matriz, recomiendo usar 0 en lugar de -Infinito)

over 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