一维数组对象转为二维数组对象

let dealRichDatas=[
    {
        "id": "_F13A931F-D448-43E3-94F3-667D04C98F21",
        "tag": "h2",
        "content": "1.章节1 "
    },
    {
        "id": "_89553229-1030-4197-BC0D-4CD1ADD075F8",
        "tag": "h3",
        "content": "1.1节点1111"
    },
    {
        "id": "p838747a-Onl8fRpp",
        "tag": "p",
        "content": "一壶浊酒喜相逢,一壶浊酒喜相逢,"
    },
    {
        "id": "_B75F5AC6-62B8-4B92-94DA-0971B5FAD64B",
        "tag": "h2",
        "content": "2.章节2 "
    },
    {
        "id": "_6A03FEDA-1F68-4DF7-989B-99A05549E544",
        "tag": "h3",
        "content": "2.1节点222"
    },
    {
        "id": "p838747a-m7AI1flW",
        "tag": "p",
        "content": "古今多少事,都付笑谈中。一壶浊酒喜相逢古今多"
    },
    {
        "id": "_A47FE9E4-32FF-42CB-B8F7-2D619F7F0638",
        "tag": "h2",
        "content": "3.章节3 "
    },
    {
        "id": "_E46EF78A-D07D-4831-9B54-97FEBF8CEF07",
        "tag": "h3",
        "content": "3.1节点333"
    },
    {
        "id": "p838747a-RgJgXZNc",
        "tag": "p",
        "content": "醉卧沙场君莫笑,古来征战几时回。"
    }
]

//主要使用数组的reduce 方法进行处理
//prev 默认第一个元素
//next 默认第二个元素
//index 数组下标
//reduce函数后的第一个参数可作为初始值(类型可为字符串,数组,
//对象)进行累加,来初始化对象,初始化数组,初始化求和等。
//如果没有默认初始值为prev
let gDatas = dealRichDatas.reduce((prev, next, index) => {
        if (next.tag == "h2") {
          let gData_p = {
            key: next.id,
            title: next.content,
          };
          gData_p.children = [];
          prev.push(gData_p);
        }

        if (next.tag == "h3") {
          let gData_c = {
            key: next.id,
            title: next.content,
          };
          prev[prev.length - 1].children.push(gData_c);
        }
        return prev;
      }, []);

      // console.log(this.gDatas, "000000000000000000000");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值