有三组以下格式的数组数据,想将这三组中的数据合并,出现问题报错如下:TypeError:Cannotreadproperty'children'ofundefinedcategories:[{'id':0,'cname':''}]courses:[{'id':0,'category_id':0'coursename':'',}]chapter:[{'id':0,'courseid':0,'chaptername':''}]options:function(){letobj=newArray()letthat=this;for(leti=0;i
2 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
出错原因遍历courses的时候,如果if语句结果是false,categories中会缺少courses信息,遍历chapter的时候把数据push进categories下的courses里就会报错改进方案遍历chapter放在遍历courses的if语句内obj[i].children[k].children.push改为obj[i].children[coursesLength-1].children.push过程分析遍历categories执行第一次后的结构:[{label:'',value:'',children:[]}]遍历courses执行第一次后的结构iftrue的结构:[{label:'',value:'',children:[{label:'',value:'',children:[]}]}]iffalse:[{label:'',value:'',children:[]}]遍历chapter执行第一次的后的结构如果上一层的结构是[{label:'',value:'',children:[]}],执行obj[i].children[k].children.push({label:'',value:''})会报错如果上一层的结构是[{label:'',value:'',children:[{label:'',value:'',children:[]}]}],执行结果会是期望的模样[{label:'',value:'',children:[{label:'',value:'',children:[{label:'',value:''}]}]}]
添加回答
举报
0/150
提交
取消