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()
// 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()
// 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()
// tentativa de criar cópia let amigosReverse = cidades.reverse(); console.log(amigos); console.log(amigosReverse);