Tengo una matriz de lista de estado de una API y quiero filtrar el servicio que se ha detenido, por lo que si está "en línea", quiero devolver el elemento en la consola o el estado. ¿Cómo puedo conseguir esto? alguien puede decirme que estoy haciendo mal. aquí está mi código -
const statusList = [ { "pid": 0, "name": "dailyScripts.job", "pm2_env": { "namespace": "default", "kill_retry_time": 100, "windowsHide": true, "username": "u4011", "treekill": true, "status": "stopped" }, "pm_id": 0, "monit": { "memory": 0, "cpu": 0 } }, { "pid": 1, "name": "finn.job", "pm2_env": { "namespace": "default", "kill_retry_time": 100, "windowsHide": true, "username": "u3411", "treekill": true, "status": "online" }, "pm_id": 1, "monit": { "memory": 0, "cpu": 1 } } ] const data = statusList.filter(service => Object.keys(service.pm2_env.status) === 'online'); console.log(data, 'data');La llamada Object.keys() no es necesaria aquí, sin ella, el resultado del filtro() debería ser el esperado:
const statusList = [ { "pid": 0, "name": "dailyScripts.job", "pm2_env": { "namespace": "default", "kill_retry_time": 100, "windowsHide": true, "username": "u4011", "treekill": true, "status": "stopped" }, "pm_id": 0, "monit": { "memory": 0, "cpu": 0 } }, { "pid": 1, "name": "finn.job", "pm2_env": { "namespace": "default", "kill_retry_time": 100, "windowsHide": true, "username": "u3411", "treekill": true, "status": "online" }, "pm_id": 1, "monit": { "memory": 0, "cpu": 1 } } ] const data = statusList.filter(service => service.pm2_env.status === 'online'); console.log(data, 'data');No estoy seguro de por qué está usando Object.keys , pero no es necesario aquí
Desde MDN:
El método Object.keys() devuelve una matriz de nombres de propiedad enumerables propios de un objeto dado, iterados en el mismo orden que lo haría un bucle normal.
Entonces la solución se convierte en:
const data = statusList.filter(service => service.pm2_env.status === 'online');