根据字段模糊查询,返回所有符合条件的新数组
function filterNode(data, val, name, childName) {
const newArr = []
const test = new RegExp('' + val)
function getName(val, obj, key) {
const childArr = childName ? obj[childName] : obj.children
if (obj[key] && test.test(obj[key])) {
newArr.push(obj)
} else if (childArr && childArr.length > 0) {
childArr.map(item => {
getName(val, item, key)
})
}
}
data.map(item => {
getName(val, item, name)
})
return newArr
}
用法
// 要查询的数组 | 查询的值 | 查询对应的key名 | 子级的key名 不传的话默认children
let newList = filterNode(this.baseList,'我是要查询的值','chineseName','child')