javascript - 递归包含嵌套对象数组的对象数组以返回数组
问题描述
我收到了一组包含问题和子问题(如果存在)的对象。子问题可以具有对象的嵌套数组,该对象又可以具有对象的嵌套数组,依此类推。
例如
let survey = [
{question: 'some question 1'},
{
question: 'some question 2',
subQues: [{ question: 'some question 3' }]
},
{
question: 'some question 4',
subQues: [
{ question: 'some question 5',
subQues: [
{ question: 'some question 6',
subQues: [{ question: 'some question 7' }]
}
]
}
]
},
{question: 'some question 8'}
]
预期的输出应该是一个包含子问题内所有问题的数组
输出-> a = ['some question 1','some question 2','some question 3','some question 4','some question 5','some question 6','some question 7','some question 8']
我需要递归地解决这个问题,因为不知道嵌套可以发生多少次。我使用这样的递归尝试了这个问题->
我的解决方案
function recursion(surveyData) {
let a = []
for(let i = 0; i < surveyData.length; i++) {
if(surveyData[i].subQues) {
a.push({question: surveyData[i].question})
recursion(surveyData[i].subQues)
}
else {
a.push({question: surveyData[i].question})
}
}
return a
}
尽管我没有收到错误,但结果不是我所期望的
我的输出
['一些问题 1','一些问题 2','一些问题 4','一些问题 8',]
任何帮助将不胜感激。
解决方案
推荐阅读
- swift - WKWebview 在选择文本时滚动
- android - SQLite 事务在 Dispatchers.Main 上冻结,但在 Dispatchers.Default 和 Dispatchers.IO 上有效
- nginx - Nginx - 无法将文件上传到 /tmp
- java - 在Android上检测软导航栏并隐藏导航栏
- python - POST 请求适用于 POSTMAN,但不适用于烧瓶
- javascript - 我可以强制赛普拉斯使用特定的 IP 地址吗?
- android - 使用 kotlin 在 android 中与底部工作表进行数据绑定
- algorithm - 如果可能的话,是否有一种算法可以创建一条智能蛇来填充整个地图,而不会与其身体或墙壁的任何一部分发生碰撞
- javascript - 如何在 Javascript 中放置 PHP 动态生成的 JSON 列表
- java - 在 EC2 服务器上将 Java Spring Boot 服务部署到生产环境