JavaScript怎么遍历这样的一个Json的对象数组?用递归or循环?
比如有这样一个对象数组
let data = [
{
title: '标题一',
tagName: 'h1'
},
{
title: '标题二',
tagName: 'h1'
},
{
title: '标题三',
tagName: 'h2'
},
{
title: '标题四',
tagName: 'h3'
},
{
title: '标题五',
tagName: 'h2'
},
{
title: '标题六',
tagName: 'h1'
},
{
title: '标题七',
tagName: 'h1'
},
{
title: '标题八',
tagName: 'h2'
},
{
title: '标题九',
tagName: 'h3'
},
{
title: '标题十',
tagName: 'h3'
}
]
要求根据tagName的优先级,从h1开始排,一直到h6,每个h1后面直到下个h1之前的都是它的children节点,依次内推,比如上面的数据这样处理后就会像下面的格式:
let data = [
{
title: '标题一',
tagName: 'h1'
},
{
title: '标题二',
tagName: 'h1',
children: [
{
title: '标题三',
tagName: 'h2'
children: [
{
title: '标题四',
tagName: 'h3'
}
]
},
{
title: '标题五',
tagName: 'h2'
}
]
},
{
title: '标题六',
tagName: 'h1'
},
{
title: '标题七',
tagName: 'h1',
children: [
{
title: '标题八',
tagName: 'h2',
children: [
{
title: '标题九',
tagName: 'h3'
},
{
title: '标题十',
tagName: 'h3'
}
]
}
]
}
]
怎么写这样的一个遍历算法呢?求大佬指教
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
@yuanxiaowa 想再问下你。。如果要顺序遍历处理好格式的结果 怎么写呢。。。就相当于遍历结果数组的每一个对象 按照原来对象的顺序打印输出: