又写了个看不懂的递归,用的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

 

posted @ 2022-01-04 16:07  everseven  阅读(60)  评论(0)    收藏  举报