JSON Tree结构修改

JSON
[
{id: 22, parent: “-1”, text: “酒”}
{id: 23, parent: “22”, text: “白酒”}
{id: 24, parent: “22”, text: “红酒”}
{id: 25, parent: “22”, text: “洋酒”}
{id: 26, parent: “22”, text: “香槟”}
{id: 27, parent: “22”, text: “药酒”}
{id: 28, parent: “22”, text: “麦卡伦”}
]

重组
在这里插入图片描述

const treeArr: any[] = [];
      response.Message.unshift({ id: '' });
       const reducetreeArr = response.Message.reduce(
           (_prev: any, val: { parent: string | string[] }, idx: any, arr: any) => {
               if (val.parent.includes('-1')) {
                   treeArr.push({
                       ...val,
                       children: [...arr],
                   });
               }
               return treeArr;
           },
       );
       const filterTreeChildren: any[] = [];
       reducetreeArr.forEach(
           (value: { children: any[]; id: number }, idx: string | number) => {
               filterTreeChildren[idx] = value;
               filterTreeChildren[idx].children = value.children.filter(
                   (element) => Number(element.parent) === value.id,
               );
           },
       );
       filterTreeChildren.forEach((items) => {
           const cachFieldItems = items;
           cachFieldItems.title = items.text;
           cachFieldItems.key = items.id;
           items.children.forEach(
               (element: {
                   title: string;
                   text: string;
                   key: number | string;
                   id: number | string;
               }) => {
                   const cachField = element;
                   cachField.title = element.text;
                   cachField.key = element.id;
               },
           );
       });
       filterTreeChildren.forEach((items) => {
           if (items.children.length === 0) {
               const cachField = items;
               delete cachField.children;
           }
       });
       const treeArray = [
           {
               title: '全部数据',
               key: '0',
               id: 0,
               children: filterTreeChildren,
           },
       ];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值