又写了个看不懂的递归,用的iview树控件
1 dealData (arr) { // 递归添加expand,替换title
for (let i = 0; i < arr.length; i++) {
if (arr[i].children) {
this.dealData(arr[i].children)
}
arr.map(ele => {
ele.expand = true
ele.title = ele.name
})
}
return arr
},
上面是给每个对象添加expand属性,使得树结构初始状态为展开
感觉上面写的怪怪的,重写一遍,
目的:这个递归主要用于处理数据,遍历和添加expand和title属性,使得ivew的树控件能够默认展开
2重写:
for (let i in arr) { if (arr[i].children && arr[i].children.length > 0) { this.dealData(arr[i].children) } arr[i].expand = true arr[i].title = arr[i].name }
return arr
3 、还有一种,之前看到博客讲for of 的遍历效率比较高的。这种跟上面for in 方法差不多,第一种里面的写法有点多余了:
for (let i of arr) { if (i.children && i.children.length > 0) { this.dealData(i.children) } i.expand = true i.title = i.name } return arr

浙公网安备 33010602011771号