js之列表转为树结构
js之列表转为树结构
原理:
list.reduce
方法:
children:子级数组名称
id:数据id
parentid:父级id字段名称
如果列表中字段名称不一致,需要修改方法中的这三个参数名。
list:列表数据
rootvalue:父元素id字段第一级的默认值,一般为0或者null。根据数据传入。
// 将列表转为树 tranListToTreeData(list, rootvalue) { return list.reduce((prev, curr, index, arr) => { const ele = arr.filter(item => item.parentid === curr.id) // debugger if (ele.length) { curr.children = ele } if (curr.parentid === rootvalue) { prev.push(curr) } return prev }, []) },
调用:
let treeData = this.tranListToTreeData(treeData, 0)
钻研不易,转载注明出处。。。。。。