Como filtrar as matrizes de objetos com base em atributos em JavaScript

Como filtrar as matrizes de objetos com base em atributos em JavaScript
Matrizes são estruturas de dados que possibilitam armazenar valores diferentes em uma única variável, armazenando informações em um conjunto de endereços de memória próximos. Uma matriz pode conter uma coleção de dados do mesmo tipo. Você também pode armazenar muitos objetos com o mesmo tipo e seus atributos em uma matriz, que podem ser recuperados ou filtrados usando vários métodos em JavaScript.

Este estudo discutirá os métodos para filtrar as matrizes de objeto com base em atributos.

Como filtrar as matrizes de objetos com base em atributos em JavaScript?

Para filtrar as matrizes de objetos com base em atributos no JavaScript, use os seguintes métodos:

  • Método Find ()
  • Método Filter ()

Vamos examinar todos esses métodos individualmente.

Método 1: Filtrar matrizes de objetos com base em atributos usando o método find ()

O método "find ()" é usado para filtrar um único objeto de uma matriz de objetos que satisfazem a condição fornecida. Aqui, examinaremos o método find () com a função de seta (=>).

A função de seta também é uma função anônima, pois é definida sem o nome da função. Saiba mais sobre funções de seta.

Sintaxe
Para usar a função de seta com o método filter (), siga a sintaxe fornecida:

filtro (currentElement =>
retornar a declaração condicional;
);

Ele retorna o primeiro elemento que corresponde à condição especificada e, se nenhum elemento corresponder, retorna “indefinido”.

Exemplo:
Primeiro, criaremos uma variedade de objetos chamados “Lista de empregados”:

Var Employeelist = [
id: 101, nome: 'Rhonda', idade: 20, Departamento: 'Auditor',
id: 111, nome: 'Susan', idade: 28, departamento: 'contas',
id: 191, nome: 'Stephen', idade: 32, departamento: 'auditor',
id: 131, nome: 'Napoleão', idade: 20, departamento: 'hr'
];

Filtrar o objeto com base no atributo “Departamento"Isso é igual a"Auditoria”Usando o método find ():

VAR Employee = Employeelist.encontre (emp =>
retornar emp.Departamento === 'Auditoria';
);

Por fim, imprima o objeto filtrado no console usando “console.registro()”Método:

console.log (funcionário);

A saída exibe o único primeiro objeto que corresponde ao Departamento === 'Auditoria':

Se você deseja acessar um atributo que não existe no objeto, nesse caso, o método filtro () retornará “indefinido”:

Como filtrar todos os objetos relacionados a uma determinada condição? Siga a próxima seção.

Método 2: Filtrar matrizes de objetos com base nos atributos usando o método filter ()

Para filtrar todos os objetos de uma matriz com base em atributos na condição fornecida, o JavaScript predefinido “filtro()”O método é usado. Aqui, examinaremos duas abordagens para aplicar um filtro a uma variedade de objetos, uma função de seta ou uma função de retorno. Ele recebe cada elemento transmitido pelo método Filter (), que atravessa internamente os elementos da matriz. Ele adiciona o elemento à matriz retornada se a função de retorno de chamada retornar true.

Sintaxe
A sintaxe do método filter () é o seguinte:

filtro (retorno de chamada, objeto);

Aqui, o método filtro () leva dois parâmetros, “função de retorno de chamada”, Que é o parâmetro obrigatório e“objeto”, Que é um argumento opcional. Ele gera uma nova matriz que contém cada elemento que atenda ao requisito especificado. Se nenhum dos elementos satisfazer a condição especificada, ele retornará uma matriz vazia como uma saída.

Para usar o método filter () com função de retorno de chamada para filtrar a matriz de objetos com base nos atributos, use a seguinte sintaxe:

var newArray = matriz.filtro (função (currentElement)
retornar a declaração condicional;
);

A função de retorno de chamada () leva três parâmetros a “CurrentElement","índice", e um "variedade”. O CurrentElement é o elemento da matriz que está sendo processada atualmente pela função de retorno de chamada e é o argumento obrigatório. Em comparação, o índice e a matriz são parâmetros opcionais.

Exemplo 1: Filter matrizes de objetos com base em atributos usando o método filter () com função de retorno de chamada
Usaremos a mesma matriz de objeto “Lista de empregados”Criado no exemplo anterior. Agora, usaremos o método filter () com função de retorno de chamada para filtrar a matriz de objeto com base no atributo “nome”:

VAR Employee = Employeelist.filtro (função (emp)
retornar emp.nome === 'Susan';
);

Saída

Exemplo 2: Filter matrizes de objetos com base em atributos usando o método filter () com uma função de seta
Aqui, usaremos o método filtro () com a função de seta para filtrar a matriz de objeto com base no atributo “Departamento”:

VAR Employee = Employeelist.filtro (emp =>
retornar emp.Departamento === 'Auditoria';
);

A saída mostra todos os dados que correspondem ao departamento === 'Audit':

Se você deseja acessar o atributo que não existe no objeto, ele retornará uma matriz vazia:

Reunimos todos os métodos para filtrar uma variedade de objetos com base nos atributos em JavaScript.

Conclusão

Para filtrar a matriz de objetos com base em atributos em JavaScript, use os métodos internos de JavaScript, como “encontrar()”Método ou“filtro()”Método. O método find () gera o primeiro elemento que corresponde à condição especificada e, se nenhum elemento corresponde, retorna indefinido. Por outro lado, o método filtro () fornece uma nova matriz que contém elementos que atendem à condição especificada. Se nenhum dos elementos satisfazer a condição específica, ele dará uma matriz vazia. Neste estudo, discutimos os métodos para filtrar a matriz de objetos com base em seus atributos com exemplos.