簡體   English   中英

返回對象內所有數組的 name 和 id 屬性值

[英]Return name and id property value of all arrays inside object

如何返回所有數組的 name 和 id 屬性值? 這個想法是制作所有這些數組的單個映射並返回 id 和名稱?

像這樣的東西

filters.[key].map((option, index) => (
              <ItemFilter key={index}>{option}</ItemFilter>
))

我有這個數組對象

filters: {
  "services": [
    {
      "id": "1b975589-7111-46a4-b433-d0e3c0d7c08c",
      "name": "Bank"
    },
    {
      "id": "91d4637e-a17f-4b31-8675-c041fe06e2ad",
      "name": "Income"
    }
  ],
  "accountTypes": [
    {
      "id": "1f34205b-2e5a-430e-982c-5673cbdb3a68",
      "name": "Digital Account"
    }
  ],
  "channels": [
    {
      "id": "875f8350-073e-4a20-be20-38482a86892b",
      "name": "Chat"
    }
  ]
}

您可以使用flatMapflat來實現所需的結果。

Object.values(obj.filters).flatMap(v => v)

要么

Object.values(obj.filters).flat()

 const obj = { filters: { services: [ { id: "1b975589-7111-46a4-b433-d0e3c0d7c08c", name: "Bank", }, { id: "91d4637e-a17f-4b31-8675-c041fe06e2ad", name: "Income", }, ], accountTypes: [ { id: "1f34205b-2e5a-430e-982c-5673cbdb3a68", name: "Digital Account", }, ], channels: [ { id: "875f8350-073e-4a20-be20-38482a86892b", name: "Chat", }, ], }, }; const result = Object.values(obj.filters).flatMap(v => v); console.log(result);

如果option在您的示例代碼中指的是name ,它可能如下所示:

Object.values(
  {
    filters: {
      services: [
        {
          id: "1b975589-7111-46a4-b433-d0e3c0d7c08c",
          name: "Bank",
        },
        {
          id: "91d4637e-a17f-4b31-8675-c041fe06e2ad",
          name: "Income",
        },
      ],
      accountTypes: [
        {
          id: "1f34205b-2e5a-430e-982c-5673cbdb3a68",
          name: "Digital Account",
        },
      ],
      channels: [
        {
          id: "875f8350-073e-4a20-be20-38482a86892b",
          name: "Chat",
        },
      ],
    },
  }.filters
)
  .flat()
  .map(({ name, index }) => <ItemFilter key={index}>{name}</ItemFilter>);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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