JavaScript Classifica a Matriz de Objetos em Ordem Alfabética
-
Classifique a matriz de objetos em ordem alfabética usando a condição
if
e a funçãosort()
em JavaScript -
Classifique a matriz de objetos em ordem alfabética usando as funções
localeCompare()
esort()
em JavaScript -
Classifique a matriz de objetos em ordem alfabética usando as funções
Collator()
esort()
em JavaScript
Este tutorial irá discutir a classificação de um array de objetos em ordem alfabética usando a função sort()
em JavaScript.
Classifique a matriz de objetos em ordem alfabética usando a condição if
e a função sort()
em JavaScript
Se tivermos um array de strings ou inteiros, podemos classificá-los facilmente usando a função sort()
em JavaScript. Por exemplo, vamos classificar um array de strings em ordem alfabética usando a função sort()
. Veja o código abaixo.
var a = ['banana', 'apple', 'orange'];
var m = a.sort();
console.log(m);
Resultado:
Array(3)
0: "apple"
1: "banana"
2: "orange"
length: 3
Como você pode ver, a matriz é classificada em ordem alfabética e o resultado é salvo na variável m
. Se temos um array de objetos, temos que usar algumas condições antes de usar a função sort()
para ordenar o array. Por exemplo, se temos um array de objetos contendo o nome e o sobrenome de algumas pessoas e queremos ordenar o array de acordo com o sobrenome das pessoas. Temos que passar uma função dentro da função sort()
, que irá comparar o sobrenome de cada pessoa, e se o sobrenome da primeira pessoa for menor que o sobrenome da segunda pessoa, a função retornará um valor negativo, e se for maior, a função retornará valor positivo; e se ambos forem iguais, a função retornará zero. Veja o código abaixo.
var a = [
{FirsName: 'Ellie', LastName: 'Williams'},
{FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
if (x.LastName < y.LastName) {
return -1;
}
if (x.LastName > y.LastName) {
return 1;
}
return 0;
}
var s = a.sort(SortArray);
console.log(s);
Resultado:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2
Como você pode ver, a matriz é classificada de acordo com o sobrenome. Você também pode aumentar o número de objetos dentro do array. Você também pode classificar a matriz de acordo com o primeiro nome.
Classifique a matriz de objetos em ordem alfabética usando as funções localeCompare()
e sort()
em JavaScript
Em vez de usar a condição if
, você também pode usar a função localeCompare()
para comparar as strings. Ele fornece muitas outras opções de comparação que você pode definir dentro da função. Por exemplo, vamos comparar a matriz de objetos acima usando a função localeCompare()
. Veja o código abaixo.
var a = [
{FirsName: 'Ellie', LastName: 'Williams'},
{FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
return x.LastName.localeCompare(y.LastName);
}
var s = a.sort(SortArray);
console.log(s);
Resultado:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2
A saída é a mesma do método acima. Você também pode definir a função para ignorar quaisquer pontuações e caracteres especiais durante a comparação. Por exemplo, se tivermos pontuação antes do sobrenome de uma pessoa, a função não classificará o array. Nesse caso, podemos usar a função localeCompare()
e configurá-la para ignorar as pontuações durante a comparação. Veja o código abaixo.
var a = [
{FirsName: 'Ellie', LastName: ',Williams'},
{FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
return x.LastName.localeCompare(y.LastName, 'fr', {ignorePunctuation: true});
}
var s = a.sort(SortArray);
console.log(s);
Resultado:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: ",Williams"}
length: 2
A matriz é classificada de acordo com o sobrenome, mesmo se houver uma pontuação presente. Você também pode ignorar caracteres especiais se eles estiverem presentes na string, definindo a sensibilidade da função localeCompare()
como base, conforme mostrado abaixo.
x.LastName.localeCompare(y.LastName, 'en', {sensitivity: 'base'});
Verifique este link para obter mais detalhes sobre a função localeCompare()
.
Classifique a matriz de objetos em ordem alfabética usando as funções Collator()
e sort()
em JavaScript
Em vez de usar a condição if
, você também pode usar a função Collator()
para comparar as strings. Por exemplo, vamos comparar a matriz de objetos acima usando a função Collator()
. Veja o código abaixo.
const collator = new Intl.Collator('en');
var a = [
{FirsName: 'Ellie', LastName: 'Williams'},
{FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
return collator.compare(x.LastName, y.LastName);
}
var s = a.sort(SortArray);
console.log(s);
Resultado:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2
A saída é a mesma dos métodos acima. Você também pode alterar a ordem de classificação para decrescente, alterando o local dos dois argumentos na função collator.compare()
. Você também pode usar a função Collator()
para comparar strings de um idioma diferente; você só precisa inicializar o objeto intercalador com esse idioma. Por exemplo, no código acima, usamos en
para o idioma inglês. Verifique este link para obter mais detalhes sobre a função Collator()
.