隔壁杨_ 2021-12-29 13:50 采纳率: 87.5%
浏览 120
已结题

js一维数组如何转换为三维数组呀?

后台给返回的一维数组,但是我需要chidren格式连接的三维的结构,类似这种

[{label:1,value:1,children:[{label:2,value:2}]}]

  • 写回答

4条回答 默认 最新

  • 几何心凉 2022年度博客之星前端领域TOP 1 2021-12-29 14:05
    关注

    直接调用下面的方法然后定义一个变量接收方法的返回值就可以了

        arrConversion (arr) {
          let keys = Object.keys(arr[0])
          let level1 = keys[0]//获取一级属性名称
          let level2 = keys[1]//获取二级属性名称
          let level3 = keys[2]//获取三级属性名称
          let list = Array.from(new Set(
            arr.map(item => {
              return item[level1]
            })))
          let subList = []
          list.forEach(res => {
            arr.forEach(ele => {
              if (ele[level1] === res) {
                let nameArr = subList.map(item => item.value)
                if (nameArr.indexOf(res) !== -1) {
                  let nameArr2 = subList[nameArr.indexOf(res)].children.map(item => item.value)
                  if (nameArr2.indexOf(ele[level2]) !== -1) {
                    subList[nameArr.indexOf(res)].children[nameArr2.indexOf(ele[level2])].children.push({
                      value: ele[level3],
                      label: ele[level3],
                    })
                  } else {
                    subList[nameArr.indexOf(res)].children.push({
                      value: ele[level2],
                      label: ele[level2],
                      children: [{
                        value: ele[level3],
                        label: ele[level3],
                      }]
                    })
                  }
                } else {
                  subList.push({
                    value: res,
                    label: res,
                    children: [{
                      value: ele[level2],
                      label: ele[level2],
                      children: [{
                        value: ele[level3],
                        label: ele[level3],
                      }]
                    }]
                  })
                }
              }
            })
    
          })
          return subList
    
        }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 创建了问题 12月29日

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试