怎样用js递归无限向下获取子节点数据,从而得到一个新的树形数据?
现有数据:
var res = [{
code: 1,
name: "湖北省",
children: [{
code: 1,
name: "武汉市",
children: [{
code: 1,
name: "汉阳区",
children: [{
code: 1,
name: "水上分局"
}]
}, {
code: 1,
name: "武昌区",
children: [{
code: 1,
name: "水上分局"
}]
}, {
code: 1,
name: "汉口区",
children: [{
code: 1,
name: "水上分局"
}]
}]
}, {
code: 1,
name: "十堰市",
children: [{
code: 1,
name: "郧阳区",
children: [{
code: 1,
name: "安阳镇"
}]
}, {
code: 1,
name: "茅箭区",
children: [{
code: 1,
name: "小川乡"
}]
}]
}]
}]
想递归得到下面格式的数据(就是过滤掉了部分不需要的字段):
var newData = [{
name: '湖北省',
children: [{
name: '武汉市',
children: [{
name: '汉阳区',
children: [{
name: '水上分局'
}]
...
}]
},{
name: '十堰市',
children: [{
name: '郧阳区',
children: [{
name: '安阳镇'
}]
...
}]
}]
}]
现在我只会用嵌套循环的方式来解决,如果想精简代码或者不知道具体有多少层的话,嵌套循环肯定是不行的,请问用递归的方法该怎么实现呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
<script type="text/javascript">
//获得数组中每一个对象的最后一个子对象,前提是如果children中没有值,不可以放一个空的"children":[]
</script>
得到的数据:
是这个意思?