js树查询
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>123123</title>
</head>
<body>
<script>
let data =[
{
id: 1,
label: '一级 1',
children: [
{
id: 4,
label: '二级 1-1',
children: [
{
id: 9,
label: '三级 1-1-1 长坤'
},
{
id: 10,
label: '三级 1-1-2',
children: [
{
id: 9,
label: '4级 1-1-1 长坤'
},
{
id: 10,
label: '4级 1-1-2'
}
]
}
]
}
]
},
{
id: 2,
label: '一级 2 长坤',
children: [
{
id: 5,
label: '二级 2-1'
},
{
id: 6,
label: '二级 2-2'
}
]
},
{
id: 3,
label: '一级 3',
children: [
{
id: 7,
label: '二级 3-1 长坤'
},
{
id: 8,
label: '二级 3-2 长坤'
}
]
}
]
function select(data,str,num){
return data.map(param=>{
if(param.select==undefined){//检查过没有
if(param.children&¶m.children.length>0){//是否有子集
if(param.children.filter(e=>e.select==1).length>0){
param.select = 1
}else{
param.children = select(param.children,str)
if(param.label.indexOf(str)>=0||param.children.filter(e=>e.select==1).length>0){
param.select = 1
}
}
}else{//没有
param.select = param.label.indexOf(str)>=0?1:2
}
}
return param
})
}
// let ce = 0;
let string = '长坤'
let res = []
let result = select(data,string)
console.log(result)
</script>
</body>
</html>