js 遍历嵌套数组
需求:用最优性能的方法将嵌套数组转化为一维数组。
var data = [
{
id: '1',
title: 'A1',
child: [
{
id: '4',
title: 'B1'
}
]
},
{
id: '2',
title: 'A2',
child: [
{
id: '5',
title: 'B2',
child: [
{
id: '7',
title: 'C1',
child: [
{
id: '8',
title: 'D1'
}
]
}
]
},
{
id: '6',
title: 'B3'
}
]
},
{
id: '3',
title: 'A3'
}
]
// 结果应该为:
// [{id:'1',title:'A1'},{id:'4',title:'B1'},{id:'2',title:'A2'},{id:'5',title:'B2'}...]
请各路大侠赐教!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
大概就是个广度优先算法嘛...
emm...看了下评论是需要深度遍历...都写上吧。
这是一个遍历树型结构的问题,可以参阅:使用递归遍历并转换树形数据,文中讲到了用递归实现的深度遍历,也讲到了用队列实现的广度遍历。
深度遍历和广度遍历的结果顺序会有所不同,楼上两位都是递归实现(深度),下面给个广度的示例:
代码还可以简洁一些,但性能可能会略差一点
var nest_result=[];
function arrNestToNonNest(arr){
}
arrNestToNonNest(data)
可能并不是最优,但很清真(跑
楼上的方法都不错了,这个性能也就这样的。