Nova turma com conversação 5x por semana 🔥

Nova turma com conversação 5x por semana 🔥

Introdução ao ordenamento de arrays em JavaScript

Como ordenar um array alfabeticamente em JavaScript: guia completo

Quando temos um array de strings em JavaScript e precisamos ordená-lo alfabeticamente, podemos utilizar o método sort(). Esse método faz uma comparação lexicográfica entre os elementos do array e os ordena em ordem crescente. Por padrão, a ordenação é realizada de acordo com o valor Unicode de cada caractere.

Vamos ver um exemplo prático de como utilizar o método sort() para ordenar um array de strings:

    let frutas = ['banana', 'abacaxi', 'laranja', 'maçã'];
frutas.sort();
console.log(frutas);
  

Neste exemplo, o array frutas será ordenado alfabeticamente e o resultado será ['abacaxi', 'banana', 'laranja', 'maçã']. O método sort() altera o array original, por isso não é necessário atribuir o resultado a uma nova variável.

Além disso, é possível realizar uma ordenação personalizada, utilizando uma função de comparação como argumento do método sort(). Essa função recebe dois parâmetros e retorna um valor negativo se o primeiro parâmetro deve ser ordenado antes do segundo, um valor positivo se o primeiro parâmetro deve ser ordenado depois do segundo, ou zero se os dois parâmetros forem iguais. Veja um exemplo:

    let numeros = [10, 2, 15, 5];
numeros.sort(function(a, b) {
  return a - b;
});
console.log(numeros);
  

Nesse caso, o array numeros será ordenado de forma crescente, resultando em [2, 5, 10, 15]. A função de comparação realiza a subtração entre os elementos para determinar a ordem correta.

Como ordenar um array de objetos em JavaScript: guia completo

Quando trabalhamos com arrays de objetos em JavaScript, a ordenação pode se tornar um pouco mais complexa. Precisamos definir critérios de ordenação com base em propriedades específicas dos objetos.

Uma abordagem comum é utilizar o método sort() em conjunto com uma função de comparação personalizada. Essa função recebe dois parâmetros que representam dois objetos do array e retorna um valor negativo, positivo ou zero, dependendo dos critérios de comparação.

Vamos supor que temos um array de objetos “pessoas”, onde cada objeto possui as propriedades “nome” e “idade”. Para ordenar o array de pessoas por idade, podemos fazer o seguinte:

    let pessoas = [
  { nome: 'João', idade: 25 },
  { nome: 'Maria', idade: 30 },
  { nome: 'Pedro', idade: 20 }
];

pessoas.sort(function(a, b) {
  return a.idade - b.idade;
});

console.log(pessoas);
  

Nesse exemplo, o array pessoas será ordenado por idade, resultando em:

    [
  { nome: 'Pedro', idade: 20 },
  { nome: 'João', idade: 25 },
  { nome: 'Maria', idade: 30 }
]
  

Podemos também adicionar critérios de desempate, caso haja pessoas com a mesma idade. Basta retornar a comparação entre outros atributos, como nome, por exemplo:

    pessoas.sort(function(a, b) {
  if (a.idade === b.idade) {
    return a.nome.localeCompare(b.nome);
  } else {
    return a.idade - b.idade;
  }
});
  

Nesse caso, se duas pessoas tiverem a mesma idade, a função localeCompare() será utilizada para realizar a ordenação alfabética por nome.

Como ordenar um array numericamente em JavaScript: guia completo

Quando lidamos com arrays numéricos em JavaScript, a ordenação pode se tornar um desafio um pouco mais complexo. Por padrão, o método sort() realiza a ordenação de forma lexicográfica, ou seja, como se os elementos fossem strings. Isso pode gerar resultados inesperados quando trabalhamos com números.

No entanto, podemos contornar essa situação utilizando uma função de comparação personalizada. Essa função recebe dois parâmetros, que representam dois elementos do array, e retorna um valor negativo, positivo ou zero, com base nos critérios de comparação.

Um exemplo prático de ordenação numérica em JavaScript:

    let numeros = [10, 5, 22, 1, 7];
numeros.sort(function(a, b) {
  return a - b;
});
console.log(numeros);
  

Nesse exemplo, o array numeros será ordenado de forma crescente, resultando em [1, 5, 7, 10, 22]. A função de comparação realiza a subtração entre os elementos, garantindo que a ordenação seja numérica e correta.

Outra possibilidade é utilizar o método sort() em conjunto com o método localeCompare(), que realiza a comparação de strings de forma numérica:

    let numeros = [10, 5, 22, 1, 7];
numeros.sort(function(a, b) {
  return a.toString().localeCompare(b.toString(), undefined, { numeric: true });
});
console.log(numeros);
  

Nesse caso, os números são convertidos em strings e a comparação é realizada utilizando a opção numeric: true, que considera o valor numérico das strings na ordenação. O resultado será o mesmo: [1, 5, 7, 10, 22].

Conclusão

Como vimos neste guia completo, existem diversas maneiras de ordenar um array em JavaScript. A escolha do método a ser utilizado depende das necessidades específicas do seu projeto e da estrutura dos dados que você está trabalhando.

Recomendamos que você experimente os diferentes métodos apresentados e teste sua aplicação para verificar qual abordagem melhor se adapta ao seu contexto. Lembre-se de sempre consultar a documentação oficial da linguagem JavaScript para obter mais informações sobre os métodos e suas opções.

Esperamos que este guia tenha sido útil para você entender como ordenar um array em JavaScript. Continue aprimorando seus conhecimentos e explorando as possibilidades que a linguagem oferece.

A Awari é a melhor plataforma para aprender sobre programação no Brasil.

Aqui você encontra cursos com aulas ao vivo, mentorias individuais com os melhores profissionais do mercado e suporte de carreira personalizado para dar seu próximo passo profissional e aprender habilidades como Data Science, Data Analytics, Machine Learning e mais.

Já pensou em aprender de maneira individualizada com profissionais que atuam em empresas como Nubank, Amazon e Google? Clique aqui para se inscrever na Awari e começar a construir agora mesmo o próximo capítulo da sua carreira em dados.

🔥 Intensivão de inglês na Fluency!

Nome*
Ex.: João Santos
E-mail*
Ex.: email@dominio.com
Telefone*
somente números

Próximos conteúdos

🔥 Intensivão de inglês na Fluency!

Nome*
Ex.: João Santos
E-mail*
Ex.: email@dominio.com
Telefone*
somente números

🔥 Intensivão de inglês na Fluency!

Nome*
Ex.: João Santos
E-mail*
Ex.: email@dominio.com
Telefone*
somente números

🔥 Intensivão de inglês na Fluency!

Nome*
Ex.: João Santos
E-mail*
Ex.: email@dominio.com
Telefone*
somente números
inscreva-se

Entre para a próxima turma com bônus exclusivos

Faça parte da maior escola de idiomas do mundo com os professores mais amados da internet.

Curso completo do básico ao avançado
Aplicativo de memorização para lembrar de tudo que aprendeu
Aulas de conversação para destravar um novo idioma
Certificado reconhecido no mercado
Nome*
Ex.: João Santos
E-mail*
Ex.: email@dominio.com
Telefone*
somente números
Empresa
Ex.: Fluency Academy
Ao clicar no botão “Solicitar Proposta”, você concorda com os nossos Termos de Uso e Política de Privacidade.