[英]how to iterate in nested array
您好,我的 JSON 结构是这样的,我需要遍历这些项目
[
{
"name": "About You",
"questions": [
{
"questionText": "What is your surname?",
"answers": [
{
"text": "Thomas"
}
]
},
{
"questionText": "Where do you work?",
"answers": [
{
"text": "Finance"
}
]
},
]
},
{
"name": "About Family",
"questions": [
{
"questionText": "Childeren",
"answers": [
{
"text": "Yes"
}
]
},
{
"questionText": "Married",
"answers": [
{
"text": "No"
}
]
},
]
},
{
"name": "Travel",
"questions": [
{
"questionText": "Do you travel a lot?",
"answers": [
{
"text": "Yes"
}
]
}
]
}
]
我从这段代码开始,但我不知道如何显示所有嵌套项。 我应该使用另一个 map function 吗? 我想要一种格式,可以显示带有 questionTexts 和答案文本的表格
{details.map((detail, i) => (
<div key={i}>
<div>{detail.name}</div>
<div>{detail.questions ? detail.questions[0].questionText : ''}</div>
<div>{detail.questions ? detail.questions[0].answers[0].text : ''}</div>
</div>
)
)}
谢谢你
我应该使用另一个 map function 吗?
是的
一、map通过details
数组details.map((detail, i) =>
Map 通过当前detail.questions
detail.questions.map((question) => (
或者,对question.answers
应用相同的逻辑question.answers.map((question) => (
一个小例子是我们展示了所有的问题:
class Example extends React.Component { render() { const details = [{"name": "About You", "questions": [{"questionText": "What is your surname?", "answers": [{"text": "Thomas"} ] }, {"questionText": "Where do you work?", "answers": [{"text": "Finance"} ] }, ] }, {"name": "About Family", "questions": [{"questionText": "Childeren", "answers": [{"text": "Yes"} ] }, {"questionText": "Married", "answers": [{"text": "No"} ] }, ] }, {"name": "Travel", "questions": [{"questionText": "Do you travel a lot?", "answers": [{"text": "Yes"} ] } ] } ]; return ( details.map((detail, i) => ( <div key={detail.name} class='question'> <b>{detail.name}</b> { detail.questions.map((question) => ( <em key={question.questionText}> Question: {question.questionText} </em> )) } </div> )) ); } } ReactDOM.render(<Example />, document.body);
.question { display: flex; flex-direction: column; margin-bottom: 15px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
补充说明
key={}
更改为问题的名称,以确保它是唯一的map()
添加了一个键
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.