• 树形数据转json


    数据格式
     

    返回数据格式1: (最后一级children如果为空,则为children:[])

        transData(data) {
          const resData = data
          const tree = []
          for (let i = 0; i < resData.length; i++) {
            if (resData[i]['domainLevel'] === '1') {
              const obj = {
                domainCode: resData[i]['domainCode'],
                domainDescription: resData[i]['domainDescription'],
                domainLevel: resData[i]['domainLevel'],
                children:[]
              }
              tree.push(obj)
              resData.splice(i, 1)
              i--
            }
          }
          this.run(tree, resData)
          return tree
        },
        run(chiArr, resData) {      
            if (resData && resData.length !== 0) {
            for (let i = 0; i < chiArr.length; i++) {
              for (let j = 0; j < resData.length; j++) {
                if (resData[j]['domainCode'].substring(0, chiArr[i].domainCode.length) === chiArr[i].domainCode && resData[j]['domainLevel'] === (parseInt(chiArr[i].domainLevel) + 1).toString()) {
                  const obj = {
                    domainCode: resData[j]['domainCode'],
                    domainDescription: resData[j]['domainDescription'],
                    domainLevel: resData[j]['domainLevel'],
                    children: []
                  }
                  chiArr[i].children.push(obj)
                  resData.splice(j, 1)
                  j--
                }
              }
              this.run(chiArr[i].children, resData)
            }
          }
        }
     
    返回格式2:(最后一级children如果为空,则不要children)

        transData(data) {
          const resData = data
          const tree = []
          for (let i = 0; i < resData.length; i++) {
            if (resData[i]['domainLevel'] === '1') {
              const obj = {
                domainCode: resData[i]['domainCode'],
                domainDescription: resData[i]['domainDescription'],
                domainLevel: resData[i]['domainLevel']
              }
              tree.push(obj)
              resData.splice(i, 1)
              i--
            }
          }
          this.run(tree, resData)

          return tree
        },
        run(chiArr, resData) {
          for (let i = 0; i < chiArr.length; i++) {
            const temp = resData.filter(item => item.domainCode.substring(0, chiArr[i].domainCode.length) === chiArr[i].domainCode && item.domainLevel === (parseInt(chiArr[i].domainLevel) + 1).toString())
            if (temp && temp.length > 0) {
              chiArr[i].children = temp
            }
            if (chiArr[i].children) {
              this.run(chiArr[i].children, resData)
            }
          }
        },
     
     
  • 相关阅读:
    终于看到费德勒在法网如愿!
    o(∩_∩)o...,今天去博客园了!
    条款4:使用Conditional特性代替#if条件编译
    MSDTC无法启动的解决方法
    2009 很有意义的一天
    从现在开始,争取记录每天所学到的、所感受到的、所遇见到的点点滴滴!
    了解MOSS2007 内容类型ID(Content Type IDs)命名规则
    CreateSpecificCulture('zhcn')和new CultureInfo('zhcn')的区别
    金华大显数码科技有限公司诚聘
    使用SQL Server中按位于来表示组合状态
  • 原文地址:https://www.cnblogs.com/fqs123456/p/11697994.html
Copyright © 2020-2023  润新知