数据转换(树状数据)

问题: 将后台返回的平级数据转换为嵌套数据格式

getTestData(){
  const arr = this.testData // 请求到的源数据
  const result = [];
  for (let data of this.testData) {
    if (data.parent_id == 0){ // 判断是否为顶层节点
      var parent = {
        "cate_id": data.cate_id,
        "cate_name": data.cate_name,
        "parent_id": data.parent_id,
        "show_in_nav": data.show_in_nav,
        "sort_order": data.sort_order,
        "children": []
      }
      parent.children = this.getchilds(parent.cate_id, this.testData);
      result.push(parent)
    }
  }
  this.resultData = result //处理完成的数据赋值给data中定义的属性
},

getchilds(id, array) {
  let childs = new Array();
  for (let arr of array) {
    if (arr.parent_id == id) {
      childs.push({
        "cate_id": arr.cate_id,
        "cate_name": arr.cate_name,
        "parent_id": arr.parent_id,
        "show_in_nav": arr.show_in_nav,
        "sort_order": arr.sort_order
      })
    }
  }

  for (let child of childs) {
    let childscopy = this.getchilds(child.cate_id, array);
    if (childscopy.length > 0) {
      child.children = childscopy;
    }
  }
  return childs;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值