Ordenando 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:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
Neste exemplo, o array de números é ordenado em ordem crescente, de forma aparentemente simples. No entanto, nuances surgem na ilustração seguinte:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
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
.
1234567const 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
Ordenar Strings
O método localeCompare()
facilita a ordenação alfabética, permitindo personalização tanto para ordem crescente quanto decrescente.
1234567const 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
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?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 2.27
Ordenando 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:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
Neste exemplo, o array de números é ordenado em ordem crescente, de forma aparentemente simples. No entanto, nuances surgem na ilustração seguinte:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
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
.
1234567const 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
Ordenar Strings
O método localeCompare()
facilita a ordenação alfabética, permitindo personalização tanto para ordem crescente quanto decrescente.
1234567const 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
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?
Obrigado pelo seu feedback!