React Native - 另一个地图函数内的地图函数?

React Native - Map function inside of another map function?

我有这个 array of data 有 4 个对象,在手动 selecting 其中一个之后,我不知道如何获取里面的所有信息。例如,我想要 'pois'(另一个数组)中的所有数据......我认为应该是这样的:

{api.monuments.map((monumento, index) => (
    {monumento.pois.map((poi, index2) => (
        <TouchableHighlight
            onPress={() => this.onClick(convento)}
            style={styles.monumentoContainer}
            key={index2}
        >
            <Image style={styles.monumentoPic} source={{uri:'http://192.168.56.1:3000/'+poi.image}}>
                <View style={styles.monumentoTitleContainer}>
                    <Text style={styles.monumentoTitle}>{poi.name}</Text>
                                </View>
            </Image>
        </TouchableHighlight>
    ))}
))}

但它不是 - image of the error,那我该怎么做呢?

另一个问题是:因为我有一个包含 4 个对象的数组,并且每个对象都有一个特定的类别,所以我如何才能 select 只有具有 'category' == [=23 的对象=]?

希望你能帮助我!谢谢

您可以按照以下方式进行:

var api = [
            { 
              category: "Cat_name",
              monuments: [
                            {
                              item: 'item1',
                              pois: [
                                      {name: 'poi1'},
                                      {name: 'poi2'},
                                      {name: 'poi3'},
                                      {name: 'poi4'}
                              ]
                            }
              ]
           },
           { 
             category: "Cat_name1",
             monuments: [
                          {
                            item: 'item2',
                            pois: [
                                   {name: 'poi5'},
                                   {name: 'poi6'},
                                   {name: 'poi7'},
                                   {name: 'poi8'}
                            ]
                          }
            ]
          }
]

要获得所有 pois 你可以做如下事情:

{api.map(i => i.monuments.map(j => j.pois.map(k => k.name)))}

如果你想检查类别名称,你可以这样做:

{data.map(i => {
     if (i.category === "Cat_name1"){
        return i.monuments.map(j => j.pois.map(k => k.name))
     }              
})}

Here is fiddle.