Ordenando 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:
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, aparentemente de forma simples. No entanto, surgem nuances na ilustração a seguir:
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 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.
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 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?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Incrível!
Completion taxa melhorada para 2.27
Ordenando 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:
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, aparentemente de forma simples. No entanto, surgem nuances na ilustração a seguir:
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 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.
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 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?
Obrigado pelo seu feedback!