乐趣区

关于javascript:各种递归方法

比拟递归

    const compare = (data1, data2) => {
            data1.forEach(item1 => {
              data2.forEach(item2 => {if (item1.id === item2.id && item1.children && item2.children) {if (item1.children.length === item2.children) {this.checkedKeys.push(item1.id)
                  } else {
                    item2.children.forEach(item3 => {this.checkedKeys.push(item3.id)
                    })
                  }
                } else {compare(item1, item2)
                }
              })
            })
          }
          compare(this.treeData, res.result)

寻找父级递归

   let parentObj = this.treeData[0]
      console.log(parentObj)
      const findParentId = (treeData, key) => {
        let flag = false
        treeData.forEach(item => {if (item.id === key) {flag = true} else if (item.children && item.children.length > 0) {
            parentObj = item
            findParentId(item.children, key)
          }
        })
        if (flag && !resultKeys.includes(parentObj.id)) {resultKeys.push(parentObj.id)
        }
      }
      this.checkedKeys.forEach(key => {findParentId(this.treeData, key)
        if (!resultKeys.includes(key)) {resultKeys.push(key)
        }
      })
退出移动版