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() | Métodos Avançados de Arrays e Transformações
Practice
Projects
Quizzes & Challenges
Questionários
Challenges
/
Estruturas de Dados em JavaScript

bookOrdenando Arrays com o Método sort()

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()?

Select the correct answer

question mark

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

Select the correct answer

question mark

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

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

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()?

Select the correct answer

question mark

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

Select the correct answer

question mark

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

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 7
some-alt