[英]Filter array of nested object using javascript
我想使用嵌套的 object 元素過濾特定的 object
"token": "4f1f17f6503e4c5a3a269ecf93d6c92d"
這是我的數據:
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",
},
];
預期 output 是:使用過濾器 object 的令牌的第一個 object 內的數據數組。下面給出預期輸出。
const data = [
{
name: "test",
token: {
expiryTime: "2021-09-24T12:27:30.654Z",
purpose: "ForgotPassword3",
token: "4f1f17f6503e4c5a3a269ecf93d6c92d",
},
user_id: "acaacc940c9ebfe798dee68acf5c",
zipcode: "",
},
];
如果你想要一個特定的 object,你可以使用find
而不是 filter。 find 將返回驗證指定給 find 方法的條件的第一個元素,其中filter
方法用於過濾所有元素並返回與數組中的條件匹配的所有元素。
?.
因為令牌 object 可能是 null 就像您在此處的某些數據中所擁有的兩個示例一樣: 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);
您必須使用以下代碼 const finded = data.filter(user => user?.token?.token ==="value"}) console.log(finded);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.