Você está aqui: JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
||||||
Como ordenar os elementos de uma matriz de inteiros em ordem crescente ou decrescente usando o método sort() do objeto ArrayQuantidade de visualizações: 11022 vezes |
||||||
Em algumas situações precisamos ordenar os elementos de uma matriz de inteiros em ordem crescente ou decrescente. Para isso podemos usar o método sort() do objeto Array. Veja:
Porém, ao executarmos este código teremos uma surpresa. O resultado será:
Isso aconteceu porque o método sort() sem nenhum argumento ordena a matriz em ordem crescente léxica, ou seja, levando em consideração o valor ASCII de cada caractere. Assim, o "1" em 19 faz com que este valor venha antes do 3 e do 5. Para contornar este problema só precisamos fornecer uma função personalizada à função sort(). Veja esta nova versão do código:
Agora o resultado será:
A função auxiliar fornecida ao método sort() do objeto Array pode ser qualquer uma, desde que possua dois parâmetros e retorne -1 se o primeiro argumento for menor que o segundo, 1 se o primeiro argumento for maior que o segundo e 0 (zero) se os argumentos forem iguais. Assim, se quisermos ordenar em ordem decrescente, só precisamos alterar a forma como estas comparações são feitas. Veja:
Agora o resultado será:
Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6. |
||||||
![]() |
||||||
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |