比拟递归
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)
}
})