Ordenamento em JavaScript

reverse()

O método reverse(), ao contrário de sort(), não ordena de maneira ascendente ou descendente os elementes de um array. O que o método faz é inverter os índices dos elementos que compõe o array, substituindo a posição do primeiro com o último, do segundo com o penúltimo, até encontrar a metade.

Assim como o sort(), o reverse() é um método destrutivo. Ou seja, ao utillizá-lo perde-se o array original.

Demo

Array.reverse()

// criação do array original let nomes = ["prof carvalho", "ash ketchum da cidade de pallet", "misty", "brock"]; console.log(nomes);
// execução do método reverse() nomes.reverse(); console.log(nomes);



Trabalho em equipe com sort()

Como o método sort(), por padrão, ordena os elementos que compõe o array em ordem alfabética, é possível utilizar o reverse() após o método sort() para ordenar o array em modo decrescente (do 'Z' ao 'A').

Array.reverse()

// criação do array original let amigos = ["pikachu", "zapdos", "ratatatatatatatatata", "bulbassauro"]; console.log(amigos);
// ordenar array sem instrução amigos.sort(); console.log(amigos);
// ordenamento dos elementos do array de maneira ascendente amigos.reverse(); console.log(amigos);





O sort() reconhece a ordem entre dois elementos ao subtrair os valores de um pelo outro.

  • Se o valor for negativo ou 0, não é necessário trocar a ordem entre os dois elementos
  • Se o valor for positivo, troque a ordem entre os dois elementos

Comportamento Destrutivo

O método reverse() altera as ordens dos valores diretamente no espaço de memória onde está armazenado o array original. Ou seja: invocou reverse(), perdeu o array original.

Array.reverse()

// criação do array original let amigos = ["pikachu", "zapdos", "ratatatatatatatatata", "bulbassauro"]; console.log(amigos);
// tentativa de criar cópia let amigosReverse = cidades.reverse(); console.log(amigos); console.log(amigosReverse);