export function transTreeData(list) { // 1. 遍历数组中所有的数据对象,给每一个对象添加chilren属性值为[] // 2. 创建一个映射对象(js对象)为了方便找数据对象 通过id 可以直接找到对应的数据对象 const mapObj = { } list.forEach(item => { item.children = [] mapObj[item.id] = item }) // 3. 实现平铺数据转树形数据 const newArr = [] // 存储的是一级的数据 list.forEach(item => { // 根据当前取出的对象,使用item.pid 找父级 const parent = mapObj[item.pid] // undefined || 一级的数据对象 if (parent) { // 如果parent=数据对象 说明item 是二级的数据 parent.children.push(item) } else { // 如果parent=undefined 说明item 是一级的数据 newArr.push(item) } }) // console.log(newArr,'newArr'); return newArr }这段代码的意思
时间: 2024-03-07 19:52:35 浏览: 78
JQuery获取表格数据示例代码
这段代码实现了将一个平铺的数组数据转换成树形数据的功能。具体实现过程如下:
1. 遍历数组中所有的数据对象,给每一个对象添加children属性值为[],以便后续存储子节点。
2. 创建一个映射对象(mapObj),用于方便通过id找到对应的数据对象。
3. 遍历数组(list),根据每个数据对象的pid找到对应的父级数据对象,如果存在,则将当前数据对象存储在父级的children数组中,否则说明当前数据对象是一级数据,直接存储在newArr数组中。
最终返回newArr数组,即转换后的树形数据。
阅读全文