- 需求:递归出来 未勾选的对象
- 预期:无法选出 checked: false 的对象,比如下面数据中(西瓜、小布丁、没有味)
- 数据
[
{
title: "parent 1",
expand: true,
checked: false,
children: [
{
title: "parent 1-1",
expand: true,
checked: false,
children: [
{
checked: false,
title: "西瓜"
},
{
checked: false,
title: "leaf 1-1-2"
}
]
},
{
title: "parent 1-2",
checked: false,
expand: true,
children: [
{
checked: false,
title: "leaf 1-2-1"
},
{
checked: false,
title: "leaf 1-2-1"
}
]
}
]
},
{
title: "parent 11",
checked: false,
expand: true,
children: [
{
title: "parent 11-1",
checked: false,
expand: true,
children: [
{
checked: false,
title: "leaf 11-1-1"
},
{
checked: false,
title: "leaf 11-1-2"
}
]
},
{
title: "adfasdfas",
checked: false,
expand: true,
children: [
{
checked: false,
title: "小布丁"
},
{
checked: false,
title: "没有味"
}
]
}
]
}
]
实现方法:
function findTarget(source, targetName) {
if (source && source.length) {
for (let item of source) {
if (item.checked === targetName) {
console.log(item.title);
} else if (item.children && item.children.length) {
findTarget(item.children, targetName);
}
}
}
}
findTarget(this.data2, false);
for (let i = 0; i < this.data2.length; i++) {
findTarget(this.data2[i], false);
}
}
问题:无法达到预期效果
不知是不是你想要的!
//同理而已