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
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.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
Para ordenar números corretamente, utilize uma função de comparação:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
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.
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
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
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.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
Para ordenar números corretamente, utilize uma função de comparação:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
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.
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!