Classificação em JavaScript | Explicado

Classificação em JavaScript | Explicado
JavaScript vem com uma grande quantidade de métodos e funções para concluir determinadas tarefas. Esses métodos ajudam ao classificar uma matriz. Classificação significa organizar um conjunto de valores em uma ordem específica, pode ser uma ordem ascendente ou descendente. Como as matrizes são parte integrante da programação, classificá -las é uma tarefa importante e crucial. Existem muitos algoritmos triviais para classificar matrizes, mas por que o trabalho duro quando JavaScript vem com métodos de classificação predefinidos.

Vamos passar por cima de uma matriz com valores de string e valores numéricos usando funções JavaScript embutidas.

.Método Sort ()

O .organizar() O método é usado para classificar uma matriz. A ordem da matriz classificada é alfabética ascendente. Funciona melhor para valores de string, mas produz resultados incorretos quando se trata de valores numéricos. Agora a questão vem por que o .o método sTIL () não funciona para valores numéricos.

Para saber por que o .Método Sort () funciona para as cordas, mas não para os valores numéricos, primeiro temos que entender como o .Método Sort () funciona.

Como é que .Sort () Method Work

O .organizar() O método funciona comparando o primeiro caractere da string com o primeiro caractere do próximo valor. Se os personagens forem iguais, ele verificará o segundo das cordas e colocará o menor primeiro. Menor é decidido com base em ordem alfabética, como no exemplo acima “C" É menor que "F”.

Então, quando passamos isso “.organizar()”Método dois valores numéricos como“ 200 ”e“ 65 ”. Esta função compara os primeiros caracteres ("2" de "200" e "6" de "65") e retorna "65" como o número maior. No entanto, neste tutorial, também passaremos por um exemplo em que classificaremos os números usando .organizar() método. Vamos começar com discutir e entender a sintaxe do .organizar() método.

Sintaxe

A sintaxe do .Método Sort () é bastante básico. Isso é:

variedade.organizar()

Valor de retorno: Uma matriz classificada.

Por exemplo, vamos fazer uma matriz com itens diferentes dentro dele:

Array = ["tabela", "cadeira", "vidro", "mouse", "laptop", "fã", "carro"];

Para classificar isso e exibir a saída, vamos usar o .Método Sort () dentro do console.Método log (), assim:

console.log (matriz.organizar());

O trecho completo do código se tornaria:

Array = ["tabela", "cadeira", "vidro", "mouse", "laptop", "fã", "carro"];
console.log (matriz.organizar());

Execute o programa para observar a saída:

.função reverse ()

O .a função reverse () não classifica uma matriz em qualquer ordem. No entanto, ele reverte o posicionamento de elementos dentro da matriz. Significando o último elemento de uma matriz se torna o primeiro elemento. A sintaxe é como:

variedade.reverter()

Se pegarmos a matriz do exemplo acima e tentará revertê -lo usando o .método reverse () então o trenó de código seria algo assim.

Array = ["tabela", "cadeira", "vidro", "mouse", "laptop", "fã", "carro"];
console.log (matriz.reverter());

A saída é como:

Como você pode ver, os elementos de uma matriz estão agora em ordem inversa. Mas como realmente classificamos uma matriz em ordem decrescente?

Como classificar os valores da matriz em ordem decrescente?

Bem, temos que usar uma combinação do .organizar() e a .reverter() método. Primeiro, classificamos uma matriz e depois usamos o .reverter() Método para classificar a matriz em ordem decrescente.

Isso parece um pouco confuso, então vamos tentar observar um exemplo. Para este exemplo, pegue a matriz dos exemplos acima.

Array = ["tabela", "cadeira", "vidro", "mouse", "laptop", "fã", "carro"];

Agora que temos uma matriz em ordem completamente aleatória. O primeiro passo é classificá -lo, então vamos fazer isso: usando

variedade.organizar()

Agora que a matriz é classificada, precisamos revertê -la usando a seguinte linha:

variedade.reverter();

A última etapa é observar a saída e, para fazer isso, vamos exibir a matriz usando o console.registro() Método como este:

console.log (matriz);

O trecho de código completo é como

Array = ["tabela", "cadeira", "vidro", "mouse", "laptop", "fã", "carro"];
variedade.organizar();
variedade.reverter();
console.log (matriz);

A saída é como:

É isso, que é nossa matriz classificada em ordem alfabética descendente. Agora vamos ver como trabalhar com valores numéricos.

Como classificar valores numéricos usando .Método Sort ()

Como já mencionamos acima, o .organizar() O método não produz resultados corretos quando se trata de classificar valores numéricos, e isso é porque o .organizar() O método funciona comparando strings, ele considera valores numéricos como seqüências e depois as compara.

Vamos começar criando uma variedade de valores numéricos. Igual a.

NumberArray = [2,3,4,6,66,100,25,33]

Agora, vamos observar a saída executando o. organizar() método nesta matriz dentro do console.registro() função

console.LOG (NumberArray.organizar());

A saída é como:

Como você pode ver, o resultado está fora da marca. Por que?. Bem, já explicamos como o .Método Sort () funciona. O que acontece é que é preciso o primeiro personagem da string e a compara com os primeiros caracteres do próximo valor, embora 100 seja maior que 33. Mas, quando você compara os primeiros caracteres, "1" é menor que "3", portanto 100 é colocado antes de 33.

Então, corrigimos este problema? Bem, fazemos isso usando uma função de comparação dentro da função de classificação. A função de comparação é como:

função (a, b)

retornar a-b

Nós pegamos o “NumberArray”No exemplo acima e aplique esta função de comparação para observar a saída.

NumerArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.Sort (função (a, b)
retornar a - b;
);
console.log (numberArray);

Com isso, obtemos a seguinte saída.

Como você pode ver, finalmente temos nossa matriz de números classificados em ordem decrescente.

Como classificar os valores numéricos em ordem decrescente?

Agora que estamos familiarizados com a classificação de uma matriz numérica em ordem crescente, podemos começar a tentar classificá -la em ordem decrescente. Assim como tentar classificar as cordas em ordem decrescente, podemos usar o método reverse () para reverter a matriz de classificação numérica assim:

NumerArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.Sort (função (x, y)
retornar x - y;
);
NumberArray.reverter();
console.log (numberArray);

A saída é como:

No entanto, há outra maneira de fazer isso, e isso é alterar a declaração de retorno na função de comparação. Altere a declaração para isso:

retornar B-A;

Depois disso, simplesmente imprimimos a matriz usando o console.registro() método. O trecho de código completo é como:

NumerArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.Sort (função (x, y)
retornar y - x;
);
console.log (numberArray);

A saída será:

Como classificar as matrizes de objetos em JavaScript

Imagine que temos uma variedade de objetos, por exemplo, vamos levar objetos de pessoas com seu nome e seu ano de nascimento.

Agora queremos classificar essa matriz até o ano em que nasceram. Temos a matriz de objetos do povo como:

const pessoas = [
Nome: "Albert", Yob: 1997,
Nome: "Dave", Yob: 2005,
Nome: "John", YOB: 2000
];

Agora podemos classificar esta matriz de objetos usando .Sort () e compare a função como:

pessoas.Sort (função (x, y)
retornar x.yob - x.yob;
);

Agora, a última coisa é exibir esta matriz usando o seguinte código:

console.log ("As pessoas em idade de idade são as");
para (vamos i = 0; i <= people.length; i++)
console.log (pessoas [i].Nome + "nasce em" + pessoas [i].yob);

O trecho de código completo é como:

const pessoas = [
Nome: "Albert", Yob: 1997,
Nome: "Dave", Yob: 2005,
Nome: "John", YOB: 2000,
];
pessoas.Sort (função (x, y)
retornar x.yob - y.yob;
);
console.log ("As pessoas em idade de idade são as");
para (vamos i = 0; i <= people.length; i++)
console.log (pessoas [i].Nome + "nasce em" + pessoas [i].yob);

Quando executamos o arquivo, obtemos a seguinte saída:

Como podemos ver, todos os objetos agora são classificados com base em seus "yob", que é o ano de nascimento da pessoa.
É isso para classificar em JavaScript.

Conclusão

Classificar é uma parte essencial ao trabalhar com matrizes. JavaScript vem com várias funções embutidas que nos ajudam a classificar elementos de matriz. Aprendemos como o .organizar() O método funciona em JavaScript, sua sintaxe e seu valor de retorno. Além disso, aprendemos a usar a combinação de .organizar() e .reverter() Método para classificar as matrizes em ordem decrescente. Por fim, aprendemos como podemos usar o .organizar() Método para classificar valores numéricos usando a função de comparação.