el-tree实现搜索的两种方式

本文比较了两种在Vue应用中搜索人员的方法:一是使用递归函数处理树形数据结构,虽然冗长但功能全面;二是通过filter直接操作,简洁高效。作者展示了递归函数的实现以及filter方法的一行代码应用。
摘要由CSDN通过智能技术生成

需要实现对人员进行搜索,第一种方法使用了递归,显得十分臃肿。

async handleSearch() {
			const keyword = this.input2.trim().toLowerCase() // 获取搜索关键字并转换为小写
			// 使用递归函数过滤树形数据
			const filterTree = (nodes, keyword) => {
				const filteredNodes = []
				for (const node of nodes) {
					if (node.label.toLowerCase().includes(keyword)) {
						// 如果节点的标签包含关键字,将其添加到结果中
						filteredNodes.push(node)
					} else if (node.children && node.children.length > 0) {
						// 如果节点有子节点,则递归过滤子节点
						const filteredChildren = filterTree(node.children, keyword)
						if (filteredChildren.length > 0) {
							// 如果子节点中有匹配的结果,则添加父节点
							const clonedNode = { ...node, children: filteredChildren }
							filteredNodes.push(clonedNode)
						}
					}
				}
				return filteredNodes
			}
			// 调用递归函数过滤数据
			this.filteredData = filterTree(this.filteredData, keyword)
			if (keyword == '') {
				const res = await getMember()
				this.filteredData = res.data.data
			}
		},

 

第二种方法使用filter进行过滤,简单便捷。仅用一行代码实现,非常便捷。

handleSearch() {
			this.$refs.tree.filter(this.keyword)
		},

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zwq8023520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值