Quiero filtrar un objeto específico usando el elemento de objeto anidado este
"token": "4f1f17f6503e4c5a3a269ecf93d6c92d"Estos son mis datos:
const data = [ { name: "test", token: { expiryTime: "2021-09-24T12:27:30.654Z", purpose: "ForgotPassword3", token: "4f1f17f6503e4c5a3a269ecf93d6c92d", }, user_id: "acaacc940c9ebfe798dee68acf5c", zipcode: "", }, { name: "df ", token: null, user_id: "e0efe9810ca289ccd590bce48051", zipcode: "", }, { name: "Io", phone: "88888888", state: "NY", token: null, user_id: "c88ce38d0c86f786c3a4b0f9f967", zipcode: "13201", }, ];El resultado esperado es: matriz de datos dentro del primer objeto del token que usa el objeto de filtro. A continuación se espera que salga.
const data = [ { name: "test", token: { expiryTime: "2021-09-24T12:27:30.654Z", purpose: "ForgotPassword3", token: "4f1f17f6503e4c5a3a269ecf93d6c92d", }, user_id: "acaacc940c9ebfe798dee68acf5c", zipcode: "", }, ];Si desea un objeto específico, puede usar find en lugar de filtrar. find devolverá el primer elemento que verifica la condición especificada para el método de búsqueda, mientras que el método de filter se usa para filtrar todos los elementos y devuelve todo el elemento que coincide con la condición dentro de una matriz.
?. porque el objeto token puede ser nulo como lo tiene en algunos de sus datos aquí, ambos ejemplos: const data = [ { "name": "test", "token": { "expiryTime": "2021-09-24T12:27:30.654Z", "purpose": "ForgotPassword3", "token": "4f1f17f6503e4c5a3a269ecf93d6c92d" }, "user_id": "acaacc940c9ebfe798dee68acf5c", "zipcode": "" }, { "name": "df ", "token": null, "user_id": "e0efe9810ca289ccd590bce48051", "zipcode": "" }, { "name": "Io", "phone": "88888888", "state": "NY", "token": null, "user_id": "c88ce38d0c86f786c3a4b0f9f967", "zipcode": "13201" } ] const resFilter = data.filter(x => x.token?.token === "4f1f17f6503e4c5a3a269ecf93d6c92d"); console.log(resFilter); const resObj = data.find(x => x.token?.token === "4f1f17f6503e4c5a3a269ecf93d6c92d"); console.log(resObj);Debe usar el siguiente código const found = data.filter(user => user?.token?.token ==="value"}) console.log(finded);