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
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

A ordenação padrão ocorre de forma eficiente para arrays de strings, mas arrays numéricos podem apresentar desafios. Veja exemplos para esclarecer esse comportamento:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

Neste exemplo, o array de números é ordenado em ordem crescente, aparentemente de forma simples. No entanto, surgem nuances na ilustração a seguir:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

O método sort() trata os elementos como strings por padrão, o que pode gerar resultados inesperados. Por exemplo, 19 é ordenado antes de 2, e 25 antes de 3. A solução está em personalizar o processo de ordenação.

Ordens de Classificação Personalizadas

Para adaptar a ordenação a necessidades específicas, utiliza-se uma função de callback. Essa 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 o primeiro elemento;
  • b é considerado 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 fundamental do método sort()?

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

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

question mark

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

Select the correct answer

question mark

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

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

A ordenação padrão ocorre de forma eficiente para arrays de strings, mas arrays numéricos podem apresentar desafios. Veja exemplos para esclarecer esse comportamento:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

Neste exemplo, o array de números é ordenado em ordem crescente, aparentemente de forma simples. No entanto, surgem nuances na ilustração a seguir:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

O método sort() trata os elementos como strings por padrão, o que pode gerar resultados inesperados. Por exemplo, 19 é ordenado antes de 2, e 25 antes de 3. A solução está em personalizar o processo de ordenação.

Ordens de Classificação Personalizadas

Para adaptar a ordenação a necessidades específicas, utiliza-se uma função de callback. Essa 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 o primeiro elemento;
  • b é considerado 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 fundamental do método sort()?

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

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

question mark

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

Select the correct answer

question mark

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

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