优化构建树形数据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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user