如何通过 React 中的嵌套对象数组进行映射

Posted

技术标签:

【中文标题】如何通过 React 中的嵌套对象数组进行映射【英文标题】:How to map through nested array of objects in React 【发布时间】:2019-09-26 08:25:04 【问题描述】:

我正在尝试通过一个数组进行映射,并且对于每个键,通过对象的嵌套数组进行映射以打印出分组值。

我不断收到 .map() 不是我的嵌套数组的函数。

我已经为对象尝试了 Object.Keys,为数组尝试了 map(),但我似乎无法正确打印任何内容。

分组数组

Airport: Array(1), Motorway: Array(2), Other: Array(2), Train: Array(2), Subway: Array(1)

嵌套数组

 Airport: Array(1)
  0: Station: "Airport", Description: "This is a description for the Airport", …

 Motorway: (2) […, …]

尝试打印映射结果:

 return (
    <Wrapper>
        Object.keys(list).map((key) => 
            key.map((station) => 
                console.log(station);
            )
        )
    </Wrapper>
)

我认为由于父对象是一个对象,而子对象是数组,所以对象键然后 map 函数可以工作,但它会抛出 .map() is not a function 错误。任何帮助将不胜感激。

【问题讨论】:

提示:第二张地图应该在list[key] 而不是key(这是一个字符串) 【参考方案1】:

这不起作用的原因是因为您试图在key 中执行.mapkey 只是一个字符串。

您应该在list[key] 上进行映射,这就是数组

    Object.keys(list).map((key) => 
        return list[key].map((station) => 
            console.log(station);
            // you should return something here
        )
    )

您可以做的另一件事是循环遍历这些值。

    Object.values(list).map((value) => 
        return value.map((station) => 
            console.log(station);
            // you should return something here
        )
    )

这样values就是你想要的数组,你可以使用.map

【讨论】:

以上是关于如何通过 React 中的嵌套对象数组进行映射的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React 的 API 中渲染嵌套在对象中的数组中的数据?

如何从 React 中的嵌套对象数组中提取数据?

React - 如何映射嵌套对象值?

React 如何在嵌套数据对象中渲染动态图像

React - 通过对象数组映射以在 Material UI 中编辑日期文本字段

React - 通过对象数组映射以在 Material UI 中创建日期文本字段