多维数组的查询。
首先不想把数组拍平了,找到对应的key之后再根据id、parentId等之类的字段去重新组装。
/**
* @param this.searchStr 查询条件
* @param arr 树形Data
* @param key 指定关键字,对应的是查询条件
* @returns [] 过滤的数组输出的结果
*/
formatData (arr, key) {
let newArr = []
arr.forEach((item) => {
// 判断条件,包含大小写转换,便于查找英文
if (item[key].toUpperCase().indexOf(this.searchStr.toUpperCase()) > -1) {
newArr.push(item)
} else {
if (item.children && item.children.length > 0) {
let redata = this.formatData(item.children, key)
if (redata && redata.length > 0) {
let obj = {
...item,
children: redata,
}
newArr.push(obj)
}
}
}
})
return newArr
}
本文介绍了一种在多维数组中进行高效查询的方法,通过递归遍历树形结构的数据并根据指定的关键字进行匹配,返回符合条件的节点及其子节点。
968

被折叠的 条评论
为什么被折叠?



