Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

198
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda