Quiero filtrar una matriz json que se parece al siguiente código:
const data = [ { __typename : 'GEP_validate_response_graph_type' , status : 'APROVADO_COM_ACOES' , informative : [ 'Manifestação obrigatória sem documento.'] , pendencias : [ { __typename : 'GEP_validate_action_graph_type' , action : 'MANIFESTACAO_OBRIGATORIA_SEM_DOCUMENTO' , optional : false , message : 'Manifestação obrigatória sem documento.' , id : null } ] , tarefa_id : 'e4cdb007-a223-5547-a49f-c47c06fd2c52' } , { __typename : 'GEP_validate_response_graph_type' , status : 'APROVADO_COM_ACOES' , informative : [ 'Manifestação obrigatória sem documento.'] , pendencias : [ { __typename : 'GEP_validate_action_graph_type' , action : 'MANIFESTACAO_OBRIGATORIA_SEM_DOCUMENTO' , optional : true , message : 'Manifestação obrigatória sem documento.' , id : null } ] , tarefa_id : '361e4c79-9605-fd4f-b7bd-47a3916ad070' } ]Quiero devolver solo el == true opcional , y luego obtendré la longitud de este objeto.
Intenté esto, pero no funcionó:
const pedido_filter = acoes_filter.pendencias.filter( (pendencia) => pendencia.optional == true );¿Cómo puedo hacer eso?
Puede usar Array.some para probar si la matriz de pendencias contiene al menos una clave optional con valor como true
let x = [{ "__typename": "GEP_validate_response_graph_type", "status": "APROVADO_COM_ACOES", "informative": [ "Manifestação obrigatória sem documento." ], "pendencias": [{ "__typename": "GEP_validate_action_graph_type", "action": "MANIFESTACAO_OBRIGATORIA_SEM_DOCUMENTO", "optional": false, "message": "Manifestação obrigatória sem documento.", "id": null }], "tarefa_id": "e4cdb007-a223-5547-a49f-c47c06fd2c52" }, { "__typename": "GEP_validate_response_graph_type", "status": "APROVADO_COM_ACOES", "informative": [ "Manifestação obrigatória sem documento." ], "pendencias": [{ "__typename": "GEP_validate_action_graph_type", "action": "MANIFESTACAO_OBRIGATORIA_SEM_DOCUMENTO", "optional": true, "message": "Manifestação obrigatória sem documento.", "id": null }], "tarefa_id": "361e4c79-9605-fd4f-b7bd-47a3916ad070" } ]; x = x.filter((item) => item.pendencias.some(y => y.optional)); console.log(x);