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

时间:2019-05-08 14:52:20

标签: arrays reactjs object ecmascript-6 mapping

我正在尝试映射一个数组,并为每个键映射一个嵌套的对象数组以打印出分组值。

我一直在获取.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>
)

我认为,因为父对象是一个对象,而子对象是数组,则使用Object Keys然后可以使用map函数,但是抛出.map()并不是函数错误。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

之所以不起作用,是因为您尝试在.map中执行keykey只是一个字符串。

您应该在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