优化构建树形数据JS方法
This commit is contained in:
		
							parent
							
								
									107672419e
								
							
						
					
					
						commit
						876ecf21c7
					
				| @ -126,23 +126,19 @@ export function praseStrEmpty(str) { | |||||||
|  * @param {*} children 孩子节点字段 默认 'children' |  * @param {*} children 孩子节点字段 默认 'children' | ||||||
|  * @param {*} rootId 根Id 默认 0 |  * @param {*} rootId 根Id 默认 0 | ||||||
|  */ |  */ | ||||||
| export function handleTree(data, id, parentId, children, rootId) { | export function handleTree(data = [], id = 'id', parentId = 'parentId', children = 'children', rootId = 0) { | ||||||
| 	id = id || 'id' |  | ||||||
| 	parentId = parentId || 'parentId' |  | ||||||
| 	children = children || 'children' |  | ||||||
| 	rootId = rootId || 0 |  | ||||||
| 	//对源数据深度克隆
 | 	//对源数据深度克隆
 | ||||||
| 	const cloneData = JSON.parse(JSON.stringify(data)) | 	const cloneData = JSON.parse(JSON.stringify(data)) | ||||||
| 	//循环所有项
 | 	//循环所有项
 | ||||||
| 	const treeData = cloneData.filter(father => { | 	const treeData = cloneData.filter(father => { | ||||||
| 		let branchArr = cloneData.filter(child => { | 		const branchArr = cloneData.filter(child => { | ||||||
| 			//返回每一项的子级数组
 | 			//返回每一项的子级数组
 | ||||||
| 			return father[id] === child[parentId] | 			return father[id] === child[parentId] | ||||||
| 		}); | 		}); | ||||||
| 		branchArr.length > 0 ? father.children = branchArr : ''; | 		branchArr.length && (father.children = branchArr); | ||||||
| 		//返回第一层
 | 		//返回第一层
 | ||||||
| 		return father[parentId] === rootId; | 		return father[parentId] === rootId; | ||||||
| 	}); | 	}); | ||||||
| 	return treeData != '' ? treeData : data; | 	return treeData !== '' ? treeData : data; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 fungleo
						fungleo