39 lines
782 B
JavaScript
39 lines
782 B
JavaScript
/**
|
||
* 数据 工具类
|
||
*
|
||
* @author terrfly
|
||
* @site https://www.jeepay.vip
|
||
* @date 2022/11/30 14:18
|
||
*/
|
||
|
||
const model = {
|
||
|
||
// 递归遍历树状结构数据 matchFunc 匹配结果, true表示匹配成功, 否则继续匹配。
|
||
// pnode 可不传入
|
||
// 返回结构: [当前数据, 上级数据 ]
|
||
recursionTreeData: (treeData, matchFunc, childrenName = 'children', pnode = null ) => {
|
||
|
||
for (let i = 0; i < treeData.length; i++) {
|
||
|
||
const item = treeData[i]
|
||
|
||
// 匹配成功
|
||
if(matchFunc(item)){
|
||
return [item, pnode]
|
||
}
|
||
|
||
if (item[childrenName] && item[childrenName].length > 0) {
|
||
let res = model.recursionTreeData(item[childrenName], matchFunc, childrenName, item)
|
||
if(res){
|
||
return res
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
export default model
|
||
|