javascript - Javascript 映射嵌套数组
问题描述
我有一个对象数组(“数组”),每个对象都包含其他对象数组。
[
{
name: "Object 1",
question: [{value: "This", type: "text"}, {value: "is", type: "text"}, {value: "1", type: "number".]
answer: [{value: "Answer", type: "text"}, {value: "is", type: "text"}, {value: "1", type: "number".]
},
{
name: "Object 2",
question: [{value: "This", type: "text"}, {value: "is", type: "text"}, {value: "2", type: "number".]
answer: [{value: "Answer", type: "text"}, {value: "is", type: "text"}, {value: "2", type: "number".]
},
]
在 React 中,我想渲染以下内容:
<Typography>This</Typography><Typography>is</Typography><Number>1</Number>
<Typography>Answer</Typography><Typography>is</Typography><Number>1</Number
<Typography>This</Typography><Typography>is</Typography><Number>2</Number>
<Typography>Answer</Typography><Typography>is</Typography><Number>2</Number
我已经尝试了以下方法,但无法弄清楚为什么其中一些无法正确映射。
array.map(snippet => {
snippet.question.map(question => {
return something here;
})
编辑为忘记了一个级别的对象
解决方案
尝试这样的事情。
array.map(snippet => (
<>
{snippet.question.map(que => {
if (que.type === "text") {
return <Typography>{que.value}</Typography>;
} else if (que.type === "number") {
return <Number>{que.value}</Number>;
}
return null;
})}
{snippet.answer.map(ans => {
if (ans.type === "text") {
return <Typography>{ans.value}</Typography>;
} else if (ans.type === "number") {
return <Number>{ans.value}</Number>;
}
return null;
})}
</>
));
推荐阅读
- angularjs - AngularJs——对 XMLHttpRequest 的访问已被 CORS 策略阻止
- r - 在 R 中运行大型 BigQuery 代码时出错
- apache - Xamarin.Cognitive.Face API 连接问题
- icalendar - 已定义的 iCal STANDARD 或 DAYLIGHT 错误
- python - 我正在尝试安装先知库,但出现错误。我如何解决此错误?
- sql - 使用连接表的 AVG 进行 SQL 更新
- azure - Azure Devops 管道 Yaml 'Toggle Block Comment' 不起作用
- python - 如何使用 strftime 以正确的顺序绘制月份名称?
- javascript - javascript中的类只显示处理时的最新状态
- java - 对在 Multi Maven Spring Boot 项目中不起作用的配置类进行单元测试