javascript - Usando la función Filter para devolver una lista de resultados filtrados de la API
En una vista estoy obteniendo un array de registros de clientes de nuestra API basada en MongoDB/Node y mostrándolos en la pantalla en mi aplicación Angular. Ahora quiero crear otra vista donde se devuelva una lista filtrada de esos registros.
Específicamente, quiero devolver una lista de registros de clientes que tengan un valor en el objeto para la propiedad "exitDate". La idea aquí es que si HAY un exitDate (es decir, el valor no es nulo), entonces esto significa que el registro es un resultado "inactivo".
La colección original de registros se está generando a través de un observable en el ciclo de vida OnInit, así:
this.clientService.getAll()
.subscribe(resRecordsData => this.clients = resRecordsData,
responseRecordsError => this.errorMsg = responseRecordsError);
Entonces, para hacer esto estoy tratando de usar una función de filtro. Esto es lo que tengo:
isInactive() {
this.inactiveClients = this.clients.filter(exitDate => !!exitDate);
}
¿Se puede manejar de esta manera? ¿Esta función de filtro devolverá los objetos que tienen un valor para la propiedad "exitDate" y excluirá aquellos que no lo tienen?
Respuesta #1
Casi tienes razón, pero la función filter te dará como argumento cada uno de los objetos y necesitarás buscar la propiedad y su valor, así que sería algo así:
this.clients.filter(client => client.exitDate !== null);
El método filter del arreglo recorre el arreglo y ejecuta la función de devolución de llamada para cada uno de sus elementos, por lo que el primer argumento que recibes en la devolución de llamada es el propio elemento.
En este caso, deseas verificar la propiedad exitDate y devolver 'true' si no es null.
