我有这个array of data有4个对象,在手动选择其中一个后,我不知道如何获取所有信息。例如,我想要“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个对象的数组,并且每个对象都有一个特定的类别,我如何只选择具有'category'=='xxxxx'的对象?
希望你能帮助我!谢谢答案 0 :(得分:1)
您可以按照以下方式执行此操作:
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))
}
})}