Cómo filtrar matrices de objetos basados ​​en atributos en JavaScript

Cómo filtrar matrices de objetos basados ​​en atributos en JavaScript
Las matrices son estructuras de datos que permiten almacenar diferentes valores en una sola variable almacenando información en un conjunto de direcciones de memoria cercanas. Una matriz puede contener una recopilación de datos del mismo tipo. También puede almacenar muchos objetos con el mismo tipo y sus atributos en una matriz, que luego se pueden recuperar o filtrar utilizando varios métodos en JavaScript.

Este estudio discutirá los métodos para filtrar las matrices de objetos basados ​​en atributos.

Cómo filtrar matrices de objetos basados ​​en atributos en JavaScript?

Para filtrar matrices de objetos basados ​​en atributos en JavaScript, use los siguientes métodos:

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

Examinemos todos estos métodos individualmente.

Método 1: Filtro de matrices de objetos basados ​​en atributos utilizando el método find ()

El método "Find ()" se usa para filtrar un solo objeto desde una matriz de objetos que satisfacen la condición dada. Aquí, examinaremos el método find () con la función de flecha (=>).

La función de flecha también es una función anónima, como se define sin el nombre de la función. Obtenga más información sobre las funciones de flecha.

Sintaxis
Para usar la función de flecha con el método filtre (), siga la sintaxis dada:

Filtro (CurrentElement =>
devolución de estado condicional;
);

Devuelve el primer elemento que coincide con la condición especificada y si no coincide ningún elemento, regresa "indefinido".

Ejemplo:
Primero, crearemos una variedad de objetos llamados "lista de empleados":

var empleeElist = [
id: 101, nombre: 'rhonda', edad: 20, departamento: 'audit',
id: 111, nombre: 'Susan', edad: 28, departamento: 'cuentas',
id: 191, nombre: 'stephen', edad: 32, departamento: 'audit',
id: 131, nombre: 'napoleón', edad: 20, departamento: 'hr'
];

Filtrar el objeto basado en el atributo "departamento"Eso es igual a"Auditoría"Usando el método find ():

VAR Empleado = Empleado.find (emp =>
devolver EMP.Dept === 'Auditoría';
);

Por último, imprima el objeto filtrado en la consola usando "consola.registro()" método:

consola.log (empleado);

La salida muestra el único primer objeto que coincide con el departamento === 'auditoría':

Si desea acceder a un atributo que no existe en el objeto, en ese caso, el método filtre () devolverá "indefinido":

Cómo filtrar todos los objetos relacionados con una condición dada? Sigue la siguiente sección.

Método 2: Filtro de conjuntos de objetos basados ​​en atributos usando el método filtre ()

Para filtrar todos los objetos de una matriz basada en atributos en la condición dada, el JavaScript predefinió "filtrar()Se utiliza el método ". Aquí, examinaremos dos enfoques para aplicar un filtro a una variedad de objetos, una función de flecha o una función de devolución de llamada. Recibe cada elemento que se le pasó por el método Filter (), que boques internamente a través de los elementos de la matriz. Agrega el elemento a la matriz devuelta si la función de devolución de llamada devuelve verdaderas.

Sintaxis
La sintaxis del método filtre () es la siguiente:

Filtro (devolución de llamada, objeto);

Aquí, el método Filter () toma dos parámetros ","función de devolución de llamada", Que es el parámetro obligatorio, y"objeto", Que es un argumento opcional. Emite una nueva matriz que contiene cada elemento que cumple con el requisito especificado. Si ninguno de los elementos satisface la condición especificada, devolverá una matriz vacía como salida.

Para usar el método Filter () con la función de devolución de llamada para filtrar la matriz de objetos basada en atributos, use la siguiente sintaxis:

var newArray = Array.Filtro (función (CurrentElement)
devolución de estado condicional;
);

La función de devolución de llamada () toma tres parámetros el "CurrentElement","índice", y un "formación". CurrentElement es el elemento en la matriz que actualmente está siendo procesado por la función de devolución de llamada, y es el argumento obligatorio. En comparación, el índice y la matriz son parámetros opcionales.

Ejemplo 1: Filtro de matrices de objetos basados ​​en atributos usando el método Filter () con la función de devolución de llamada
Usaremos la misma matriz de objetos "lista de empleados"Creado en el ejemplo anterior. Ahora, utilizaremos el método Filter () con la función de devolución de llamada para filtrar la matriz de objeto basada en el atributo "nombre":

VAR Empleado = Empleado.filtro (función (emp)
devolver EMP.nombre === 'Susan';
);

Producción

Ejemplo 2: Filtro de conjuntos de objetos basados ​​en atributos usando el método Filter () con una función de flecha
Aquí, usaremos el método Filter () con la función de flecha para filtrar la matriz de objeto basada en el atributo "departamento":

VAR Empleado = Empleado.filtro (emp =>
devolver EMP.Dept === 'Auditoría';
);

La salida muestra todos los datos que coinciden con el departamento === 'auditoría':

Si desea acceder al atributo que no existe en el objeto, devolverá una matriz vacía:

Hemos reunido todos los métodos para filtrar una matriz de objetos basados ​​en los atributos en JavaScript.

Conclusión

Para filtrar la matriz de objetos basada en atributos en JavaScript, use los métodos incorporados de JavaScript como "encontrar()"Método o"filtrar()" método. El método find () genera el primer elemento que coincide con la condición especificada, y si ningún elemento coincide, devuelve indefinido. Por el contrario, el método Filter () proporciona una nueva matriz que contiene elementos que cumplen con la condición especificada. Si ninguno de los elementos satisface la condición particular, dará una matriz vacía. En este estudio, hemos discutido los métodos para filtrar la variedad de objetos en función de sus atributos con ejemplos.