Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

199
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!