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) // 输出 行政