// 扁平数据根据pid拼接成树形数据
let arr = [
{ label: '安徽', id: '1', pid: null},
{ label: '合肥', id: '11', pid: '1'},
{ label: '肥东', id: '111', pid: '11'},
{ label: '芜湖', id: '12', pid: '1'},
{ label: '繁昌', id: '121', pid: '12'},
{ label: '浙江', id: '2', pid: null},
{ label: '杭州', id: '21', pid: '2'},
{ label: '西湖区', id: '211', pid: '21'},
{ label: '金华', id: '22', pid: '2'},
];
/**
* @description: 拼接树形数据
* @param Array arr 扁平数组
* @param String id 父级别id
* @return []
*/
function jointTree(arr, id) {
const res = [];
if (arr.length > 0) {
arr.forEach((item) => {
if (item.pid === id) {
item['children'] = this.jointTree(arr, item.id);
if (item.children.length) {
item['children'] = item.children;
}
res.push(item);
}
});
}
return res;
}
console.log('--树形数据', jointTree(arr, null))
数组常见操作
于 2022-04-12 11:59:05 首次发布