最近在做一个5+app的项目,代码没有react和vue那么灵活,甚至感觉像在写原生代码,因为项目涉及到一些组织架构的搜索,但是用5+app没有找到像antd那么方便的树组件,只能自己想办法解决了。 废话不多说,下面直接上代码
function getTreeList(sourceList, keyWord) {
const filterData = function (data) {
for (let i = 0; i < data.length; i++) {
if (data[i].title.indexOf(keyWord) > -1) continue;
if (data[i].children && data[i].children.length > 0) {
data[i].children = filterData(data[i].children);
if (data[i].children && data[i].children.length == 0) {
data.splice(i, 1);
i--;
}
} else {
data.splice(i, 1);
i--;
}
}
return data;
};
sourceList = filterData(sourceList);
return sourceList;
}
arr = [
{
title: "1",
children: [
{ title: "1-1" },
{
title: "1-2",
children: [{ title: "1-2-1" }, { title: "1-2-2" }, { title: "1-2-3" }],
},
],
},
{
title: "2",
children: [
{ title: "2-1", children: [{ title: "2-1-1" }] },
{ title: "2-2", children: [{ title: "2-2-1" }] },
],
},
];
上面就是全部代码啦,如果有不对的地方请大家多指点,感谢大家!!
|