只有在 c.pid 的值为空的情况下才会将当前的 ‘c’ push 到 chapterTree, 相当于只会将所有的"父章节" push 到 chapterTree 中,那为什么最终输出的结果是 chapterTree[0].children 中的包含有"子章节",else 里面并没有对 chapterTree 有别的操作啊,怎么就影响到 chapterTree呢,究竟 “子章节” 是怎么被 push 到 chapterTree 里的,受了哪行代码的影响?
js 基础知识有些薄弱,苦恼了许久,望老师解答,谢谢!
测试代码:
var arr = [
{
id: '1',
pid: '',
},
{
id: '1.1',
pid: '1',
},
{
id: '1.2',
pid: '1',
},
{
id: '2',
pid: '',
}
]
var newArr = []
arr.forEach(item => {
item.children = []
if (item.pid === '') {
newArr.push(item)
} else {
const parent = arr.find(c => c.id === item.pid)
parent.children.push(item)
}
})
登录后可查看更多问答,登录/注册
基于Element的中后台课程,一套中小型企业通用的后台管理系统
了解课程