1、树形结构递归通过id找到对应label:
export function findTreeItem(table, id, key = 'id') { let hasFound = false // 表示是否有找到id值 let result = null const fn = function(data) { if (Array.isArray(data) && !hasFound) { console.log('是数组') // 判断是否是数组并且没有的情况下 data.some(item => { //使用some替换forEach,forEach无法终止循环 if (data.find(item => item[key] == id)) { //不能使用if item[key]==id),否则for循环执行完之后才能进入if语句。 console.log('相等'+item) // 数据循环每个子项,并且判断子项下边是否有id值 result = item // 返回的结果等于每一项 console.log(result) hasFound = true // 并且找到id值 return true //跳出循环体,终止循环。 } else if (item.children) { fn(item.children) // 递归调用下边的子项 } }) } } fn(table) // 调用一下 return result }