处理后端接受到的数据分层级显示数据中有一级和二级

1.针对将每层级对应的数据存放在一个表里,返回表中内容时组装前端组件需要的对象数组
2.目前制作了3层分级页面,增加层分级后续思路一样
3.本人自己所想有更好的方法感谢大佬评论
// 接受到后端响应的数据
let sourceList = response.rows;
// 一级分类对象数组
let sourceList1 = []; //存一级分类名称
let newArr = []; //存新数组
// 去重拿出第一层级的分类
for (let i in sourceList) {
  if (newArr.indexOf(sourceList[i].firstClass) === -1) {
    newArr.push(sourceList[i].firstClass);
    sourceList1.push({
      value: sourceList[i].firstClass,
      label: sourceList[i].firstClass,
      children: [],
    });
  }
}
// 去重拿出第二层级的分类
// 二级分类对象数组
let sourceList2 = []; //存二级分类名称
let twoArr = []; //存新数组
for (let i in sourceList) {
  if (twoArr.indexOf(sourceList[i].secondaryClass) === -1) {
    twoArr.push(sourceList[i].secondaryClass);
    sourceList2.push(sourceList[i]);
  }
}

// 查询二级分类对象是否包含第一层级分类
for (let i in sourceList1) {
  for (let j in sourceList2) {
    if (sourceList1[i].value === sourceList2[j].firstClass) {
      sourceList1[i].children.push({
        value: sourceList2[j].secondaryClass,
        label: sourceList2[j].secondaryClass,
        children: [],
      })
    }
  }
}

// 查询三级分类对象是否包含一级分类和二级分类
for (let i in sourceList1) {
  for (let j in sourceList1[i].children) {
    for (let v in sourceList) {
      if (sourceList[v].firstClass === sourceList1[i].value && sourceList[v].secondaryClass === sourceList1[i].children[j].value) {
        sourceList1[i].children[j].children.push({
          value: sourceList[v].name,
          label: sourceList[v].name,
        })
      }
    }
  }
}
// 将组装好的数组赋给渲染的输入联动框或者树形层级图
this.emissionSourcesData = sourceList1;
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值