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

Este capítulo explora as complexidades do método sort(), incluindo sua sintaxe, comportamentos padrão e técnicas de ordenação personalizadas.

sort()

O método sort() modifica o array original, atribuindo-lhe uma nova ordem.

Características principais a serem lembradas:

  • O array original é transformado, com seus elementos reorganizados;
  • O método retorna o array modificado, permitindo análises adicionais;
  • Por padrão, o método sort() organiza os elementos em ordem crescente.

Comportamento Padrão de Ordenação

A ordenação padrão ocorre de forma transparente para arrays de strings, mas arrays numéricos podem apresentar desafios. Vamos analisar 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, de forma aparentemente simples. No entanto, nuances surgem na ilustração seguinte:

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 Ordenaçã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 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

Awesome!

Completion rate improved to 2.27

bookOrdenando Arrays com o Método sort()

Deslize para mostrar o menu

Este capítulo explora as complexidades do método sort(), incluindo sua sintaxe, comportamentos padrão e técnicas de ordenação personalizadas.

sort()

O método sort() modifica o array original, atribuindo-lhe uma nova ordem.

Características principais a serem lembradas:

  • O array original é transformado, com seus elementos reorganizados;
  • O método retorna o array modificado, permitindo análises adicionais;
  • Por padrão, o método sort() organiza os elementos em ordem crescente.

Comportamento Padrão de Ordenação

A ordenação padrão ocorre de forma transparente para arrays de strings, mas arrays numéricos podem apresentar desafios. Vamos analisar 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, de forma aparentemente simples. No entanto, nuances surgem na ilustração seguinte:

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 Ordenaçã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 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