js递归找label
数据结构是这样的
let list = [{label: '初等教育',id: 1,children: [{label: '小学',id: 2,}]},{label: '中等教育',id: 3,children: [{label: '初级中学',id: 4,},{label: '高级中学',id: 5,children: [{label: '普通高中',id: 6,},{label: '中专',id: 7,},{label: '职业高中',id: 8,},]}]},{label: '高等教育',id: 9,children: [{label: '大学专科(大专)',id: 10,},{label: '大学本科',id: 11,},{label: '硕士研究生',id: 12,},{label: '博士研究生',id: 13,}]}
]
知道id值,拿到对应的label值
function getDegree(id, list) {let label = ''for(let i = 0; i < list.length; i++) {let item = list[i]if(item.id == id) {label = item.labelreturn label} else if(item.id != id && Array.isArray(item.children) && item.children.length > 0) {label = getDegree(id, item.children)if(label) return label}}return label
}let list = [{label: '初等教育',id: 1,children: [{label: '小学',id: 2,}]},{label: '中等教育',id: 3,children: [{label: '初级中学',id: 4,},{label: '高级中学',id: 5,children: [{label: '普通高中',id: 6,},{label: '中专',id: 7,},{label: '职业高中',id: 8,},]}]},{label: '高等教育',id: 9,children: [{label: '大学专科(大专)',id: 10,},{label: '大学本科',id: 11,},{label: '硕士研究生',id: 12,},{label: '博士研究生',id: 13,}]}
]
getDegree('1', list) // '初等教育'
getDegree('2', list) // '小学'
getDegree('3', list) // '中等教育'
getDegree('4', list) // '初级中学'
getDegree('5', list) // '高级中学'
getDegree('6', list) // '普通高中'
getDegree('7', list) // '中专'
getDegree('8', list) // '职业高中'
getDegree('9', list) // '高等教育'
getDegree('10', list) // '大学专科(大专)'
getDegree('11', list) // '大学本科'
getDegree('12', list) // '硕士研究生'
getDegree('13', list) // '博士研究生'
getDegree('14', list) // ''
