将树的某个叶子节点向上提一个level

将树的某个叶子节点向上提一个level

我这里要求把同级里面的users提上一个层级

处理方法与后端返回的数据结构

遇到的问题

修改原数据的时候一直修改不了

javascript 复制代码
function pushChild(items) {
      let itemsChild = []
      if(!items) return
      for(let i=0; i<items.length;i++) {
        if(items[i].users) {
          itemsChild = [...itemsChild,...items[i].users]
        }      
        pushChild(items[i].childs) 
      }
      // items = [...items,...itemsChild]  错误的修改方式
      // items = items.concat(itemsChild)  错误的修改方式
      // 上面都对items 重新分配的地址空间
      items.push(...itemsChild)
      console.log(items);
      
      
    }

const res = [
        {
          label: '1',
          value: '1',
          childs: [{
            label: '1.1',
            value: '1.1',
            users: [{
              label:'1.1-1',
              value:'1.1-1'
            }]
          },
          {
            label: '1.2',
            value: '1.2',
          },
          {
            label: '1.3',
            value: '1.3',
          },
          
        ],
          users: [{
           label: '1-1',
           value: '1-1', 
          }]
      }, {
          label: '2',
          value: '2',
          childs: [{
            label: '2.1',
            value: '2.1',
            users: [{
              label:'2.1-1',
              value:'2.1-1'
            }]
          },
          {
            label: '2.2',
            value: '2.2',
          },
          {
            label: '2.3',
            value: '2.3',
          },
          
        ],
          users: [{
           label: '2-1',
           value: '2-1', 
          }]
      }, {
          label: '3',
          value: '3',
          childs: [{
            label: '3.1',
            value: '3.1',
            users: [{
              label:'3.1-1',
              value:'3.1-1'
            }]
          },
          {
            label: '3.2',
            value: '3.2',
          },
          {
            label: '3.3',
            value: '3.3',
          },
          
        ],
          users: [{
           label: '3-1',
           value: '3-1', 
          }]
      }, {
          label: '4',
          value: '4',
          childs: [{
            label: '4.1',
            value: '4.1',
            users: [{
              label:'4.1-1',
              value:'4.1-1'
            }]
          },
          {
            label: '4.2',
            value: '4.2',
          },
          {
            label: '4.3',
            value: '4.3',
          },
          
        ],
        users: [{
          label: '4-1',
          value: '4-1', 
        }]
      }]
相关推荐
高级程序源35 分钟前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
八荒启·交互动画1 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计1 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能
lizz22761 小时前
Babel插件手册
javascript
用户938515635071 小时前
从小米前端面试题,彻底搞懂闭包、作用域链与 useState 惰性初始化
前端·面试
粥里有勺糖2 小时前
视野修炼第133期 | Native 回春了?
前端·github·agent
aichitang20242 小时前
前端小skill
前端·人工智能·算法·ai·前端框架
前端·柱子3 小时前
q-floodfill白边锯齿?一招搞定抗锯齿边缘问题
前端·html·canva可画
葡萄城技术团队3 小时前
SpreadJS V19.2新特性揭秘:功能区键盘提示
前端
计算机魔术师4 小时前
AI 幻觉导致的错误情报险些引发美军拦截中国船只
前端