项目场景:
js树形数据结构的搜索
描述:
根据搜索条件筛选树形数据
树形数据:
var tree = [{
id: '01',
text: '广东省',
children: [{
id: '011',
text: '广州市',
children: [
{
id: '0111',
text: '西城区',
children: [],
}, {
id: 0112,
text: '东城区',
children: [],
},
],
}],
}]
搜索功能 - -(将符合条件的数据进行检索过滤)
RegExp链接
RegExp 对象
正则表达式是描述字符模式的对象。
var patt=new RegExp(pattern,modifiers);
或者更简单的方式:
var patt=/pattern/modifiers;
正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。
//name 搜索参数
const regex = new RegExp(name);
js遍历树形结构并返回数据
let data = [];
if (name) {
//name 搜索参数
const regex = new RegExp(name);
for (let index = 0; index < tree .length; index++) {
const found = tree [index].children.filter((item) => regex.test(item.text));
if (found.length) {
data.push({
key: tree [index].id,
id: tree [index].id,
text: tree [index].text,
children: found,
});
}
}
}
console.log('树形过滤数据',data)