簡體   English   中英

使用 javascript 過濾嵌套 object 數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM