使用RegExp 对象方法 test() 过滤树形

项目场景:

js树形数据结构的搜索


描述:

根据搜索条件筛选树形数据

树形数据:

var tree = [{
        id: '01',
        text: '广东省',
        children: [{
            id: '011',
            text: '广州市',
            children: [
                {
                    id: '0111',
                    text: '西城区',
                    children: [],
                }, {
                    id: 0112,
                    text: '东城区',
                    children: [],
                },
            ],
        }],
    }]

搜索功能 - -(将符合条件的数据进行检索过滤)
RegExp链接

RegExp 对象
正则表达式是描述字符模式的对象。

语法
完整 RegExp 对象参考手册

var patt=new RegExp(pattern,modifiers);
或者更简单的方式:
var patt=/pattern/modifiers;

在这里插入图片描述
test()讲解

正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。

//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)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值