const list = [{"value": 192,"label": "技术部","children": [{"value": 193,"label": "软件组","children": [{"value": 195,"label": "软件一组"},{"value": 196,"label": "软件二组"}]},{"value": 198,"label": "运维组"}]},{"value": 200,"label": "财务部","children": [{"value": 201,"label": "会计"},{"value": 203,"label": "出纳"}]},{"value": 300,"label": "人资部","children": [{"value": 301,"label": "行政"},{"value": 302,"label": "人资"}]}]
假设给定一个id = 301,查找出 list 中value = id的对象,并取出对应的label值。
/*** 递归函数* @param setValues 树型数据* @param valueId 查找的id*/function recursionGet(setValues, valueId) {let value = null;for (let index = 0; index < setValues.length; index += 1) {if (setValues[index].value === valueId) {value = setValues[index].label;break;}if (setValues[index].children instanceof Array && setValues[index].children.length > 0) {const text = recursionGet(setValues[index].children, valueId);if (text)return text;}}return value;}// 调用const data =recursionGet(list,301)console.log(data) // 输出 行政

