将多个数组处理成树形结构

处理函数

export const fromList = function(array, copy, value, pvalue) {
    const ret = []
    const cache = {}
    value = value || 'value'
    pvalue = pvalue || 'pvalue'
    for (let i = 0; i < array.length; ++i) {
        const ele = copy ? Object.assign({}, array[i]) : array[i]
        cache[ele[value]] = ele
    }
    for (let i = 0; i < array.length; ++i) {
        const ele = copy ? cache[array[i][value]] : array[i]
        const pele = cache[ele[pvalue]]
        if (pele) {
            if (!pele.children) {
                pele.children = []
            }
            pele.children.push(ele)
        } else {
            ret.push(ele)
        }
    }
    return ret
}

使用封装函数

import { fromList } from "@/utils/tree";

loadOrgTree() {
      return orgApi.listByOrgId(this.$store.getters.user.orgId).then(response => {
        if (response.data && response.data.length) {
          console.log(response.data)
          this.orgTreeData = fromList(response.data, true, "orgId", "parentId");
          console.log(this.orgTreeData)
        }
      }).finally(() => {
        this.treeLoading = false;
      });
    },

处理前的数据

(1794) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, …]
[0 … 99]
0:
address: "0000000100310010"
createBy: null
createDate: "2022-05-10 10:08:39"
email: null
fax: null
leader: null
orgCode: "nan"
orgId: "003b8aa407f44813ba76195c2669aa47"
orgName: "东丰县华粮粮食储备有限公司"
parentId: "b4cf9c36dcb241fab90807ea236e11d6"
parentIds: "0,32cdbb3a278944f1a83ca40dbcc93c0a,ce42773e87604ded8aecc1a457468ff3,b4cf9c36dcb241fab90807ea236e11d6"
phoneNo: null
remarks: null
status: "0"
treeLevel: null
treeSort: null
updateBy: null
updateDate: "2022-05-10 10:08:39"
zipCode: null
[[Prototype]]: Object
1: {status: '0', createBy: null, createDate: '2022-05-10 10:08:41', updateBy: null, updateDate: '2022-05-10 10:08:41', …}
2: {status: '0', createBy: null, createDate: '2022-05-10 10:08:33', updateBy: null, updateDate: '2022-05-10 10:08:33', …}
3: {status: '0', createBy: null, createDate: '2022-05-10 10:08:37', updateBy: null, updateDate: '2022-05-10 10:08:37', …}
4: {status: '0', createBy: null, createDate: '2022-05-10 10:08:42', updateBy: null, updateDate: '2022-05-10 10:08:42', …}
5: {status: '0', createBy: null, createDate: '2022-05-10 10:08:53', updateBy: null, updateDate: '2022-05-10 10:08:53', …}

处理后的数据

[{…}]
0:
address: "0000"
children: Array(12)
0: {status: '0', createBy: null, createDate: '2022-05-10 10:08:52', updateBy: null, updateDate: '2022-05-10 10:08:52', …}
1: {status: '0', createBy: null, createDate: '2022-05-10 10:08:51', updateBy: null, updateDate: '2022-05-10 10:08:51', …}
2: {status: '0', createBy: null, createDate: '2022-05-10 10:08:55', updateBy: null, updateDate: '2022-05-10 10:08:55', …}
3: {status: '0', createBy: null, createDate: '2022-05-10 10:08:52', updateBy: null, updateDate: '2022-05-10 10:08:52', …}
4: {status: '0', createBy: null, createDate: '2022-05-10 10:08:52', updateBy: null, updateDate: '2022-05-10 10:08:52', …}
5: {status: '0', createBy: null, createDate: '2022-05-10 10:08:53', updateBy: null, updateDate: '2022-05-10 10:08:53', …}
6: {status: '0', createBy: null, createDate: '2022-05-10 10:08:52', updateBy: null, updateDate: '2022-05-10 10:08:52', …}
7: {status: '0', createBy: null, createDate: '2022-05-10 10:08:55', updateBy: null, updateDate: '2022-05-10 10:08:55', …}
8: {status: '0', createBy: null, createDate: '2022-05-10 10:08:32', updateBy: null, updateDate: '2022-05-10 10:08:32', …}
9: {status: '0', createBy: null, createDate: '2022-05-10 10:08:53', updateBy: null, updateDate: '2022-05-10 10:08:53', …}
10: {status: '0', createBy: null, createDate: '2022-05-10 10:08:51', updateBy: null, updateDate: '2022-05-10 10:08:51', …}
11: {status: '0', createBy: null, createDate: '2022-05-10 10:08:55', updateBy: null, updateDate: '2022-05-10 10:08:55', …}
length: 12
[[Prototype]]: Array(0)
createBy: null
createDate: "2022-05-10 10:08:32"
email: null
fax: null
leader: null
orgCode: "group"
orgId: "32cdbb3a278944f1a83ca40dbcc93c0a"
orgName: "中粮贸易有限公司"
parentId: "0"
parentIds: "0"
phoneNo: null
remarks: null
status: "0"
treeLevel: null
treeSort: null
updateBy: null
updateDate: "2022-05-10 10:08:32"
zipCode: null
[[Prototype]]: Object
length: 1
[[Prototype]]: Array(0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值