【问题标题】:Return name and id property value of all arrays inside object返回对象内所有数组的名称和id属性值
【发布时间】:2021-09-26 12:27:44
【问题描述】:

如何返回所有数组的name和id属性值?想法是制作所有这些数组的单个映射并返回 id 和 name?

类似的东西

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"
    }
  ]
}

【问题讨论】:

    标签: javascript reactjs ecmascript-6


    【解决方案1】:

    您可以使用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);

    【讨论】:

    • 只是flat 会和flatMap(v =&gt; v) 做同样的事情,对吧?
    【解决方案2】:

    如果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>);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多