【无标题】

树结构处理

数目录

数结构,用于处理关联数据展示,但是后端不会返回一个树结构,而是会返回一个关联id,需要我们去关联,做一个树结构。

代码实现

数据

let data = {
		parent: [
			{
			id: 1,
			name: '目录1',
			parentID: 0,
			},
			{
			id: 4,
			name: '目录2',
			parentID: 0,
			},
			{
			id: 6,
			name: '目录3',
			parentID: 0,
			},
		],
		children: [
			{
			id: 2,
			name: '目录1-1',
			parentID: 1,
			},
			{
			id: 3,
			name: '目录1-2',
			parentID: 1,
			},

			{
			id: 5,
			name: '目录2-1',
			parentID: 4,
			},
		],
};
// 将两个数据合并
let allData = [...data.parent, ...data.children];
console.log('allData', allData);
// 做一个hash映射关系
let treeList = allData.reduce((previous, current) => {
  previous[current.id] = current;
  return previous;
}, {});
// 数组结构
let result = allData.reduce((previous, current) => {
  let parent = treeList[current.parentID];
  if (parent) {
    parent.children
      ? parent.children.push(current)
      : (parent.children = [current]);
  } else if (current.parentID == 0) {
    previous.push(current);
  }
  return previous;
}, []);
console.log('result', result);

你可能感兴趣的:(公司项目相关,javascript,vue.js,开发语言)