Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Ordenando Arrays com o Método sort() | Section
Fundamentos de JavaScript

bookOrdenando Arrays com o Método sort()

Deslize para mostrar o menu

sort()

O método sort() reorganiza os elementos de um array no próprio array e retorna o array atualizado. Por padrão, a ordenação funciona bem para strings, mas pode apresentar comportamentos inesperados com números.

Comportamento Padrão de Ordenação

O método sort() converte os elementos em strings por padrão e os compara em ordem Unicode. Por isso, funciona naturalmente para strings, mas arrays numéricos podem gerar resultados inesperados, a menos que seja fornecida uma função de comparação.

123
const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
copy

Para ordenar números corretamente, utilize uma função de comparação:

1234
const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
copy

Ordens de Ordenação Personalizadas

Para adaptar a ordenação a necessidades específicas, utiliza-se uma função de retorno de chamada. Esta função, frequentemente chamada de função de comparação, define a lógica de ordenação. Vamos explorar ordenações personalizadas tanto para números quanto para strings. Sintaxe básica:

array.sort((a, b) => {
  // Callback body
});
  • a é considerado como o primeiro elemento;
  • b é considerado como o segundo elemento.

Ordenar Números

Neste caso, a função de comparação determina as ordens crescente e decrescente com base na relação entre os elementos a e b.

1234567
const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
copy

Ordenar Strings

O método localeCompare() facilita a ordenação alfabética, permitindo personalização tanto para ordem crescente quanto decrescente.

1234567
const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
copy

1. Qual é uma característica chave do método sort()?

2. No comportamento padrão de ordenação do método sort(), como ele trata os elementos?

3. No exemplo abaixo, qual será a saída?

question mark

Qual é uma característica chave do método sort()?

Selecione a resposta correta

question mark

No comportamento padrão de ordenação do método sort(), como ele trata os elementos?

Selecione a resposta correta

question mark

No exemplo abaixo, qual será a saída?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 30

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 1. Capítulo 30
some-alt