我是只兔子i 2022-05-19 14:20 采纳率: 58.3%
浏览 44
已结题

请教关于element树删除之后重新排序的问题

问题遇到的现象和发生背景

树的级数排序由sortNum这个字段来决定(一级:1, 二级1.1 ,三级1.1.1 ) ,在删除其中一个子级后,如何给剩下的子级重新赋值排序
例如1.1级下有1.1.1, 1.1.2, 1.1.3, 1.1.4四个子级,删除1.1.1这个子级后,如何给剩下的子级重新赋值排序,也就是将剩下的(1.1.2,1.1.3,1.1.4)重新赋值为(1.1.1,1.1.2,1.1.3) 求赐教!

我想要达到的结果

删除其中一个子级后,给剩下的子级重新赋值排序

  • 写回答

2条回答 默认 最新

  • web修理工 2022-05-29 18:12
    关注

    如果是数据类型 请贴出数据来 这是我处理的 一级 二级 三级 你可以试试

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
      </head>
      <body>
        <script>
          let arr = [
            {
              label: "一级 1",
              sortNum: "1",
              children: [
                {
                  sortNum: "1.1",
                  label: "二级 1-1",
                  children: [
                    {
                      sortNum: "1.1.1",
                      label: "三级 1-1-1",
                    },
                    {
                      sortNum: "1.1.2",
                      label: "三级 1-1-2",
                    },
                    {
                      sortNum: "1.1.3",
                      label: "三级 1-1-3",
                    },
                    {
                      sortNum: "1.1.4",
                      label: "三级 1-1-4",
                    },
                  ],
                },
                {
                  sortNum: "1.2",
                  label: "二级 2-1",
                  children: [
                    {
                      sortNum: "1.2.1",
                      label: "三级 1-2-1",
                    },
                    {
                      sortNum: "1.2.2",
                      label: "三级 1-2-2",
                    },
                    {
                      sortNum: "1.2.3",
                      label: "三级 1-2-3",
                    },
                    {
                      sortNum: "1.2.4",
                      label: "三级 1-2-4",
                    },
                  ],
                },
              ],
            },
            {
              label: "一级 2",
              sortNum: "2",
              children: [
                {
                  sortNum: "2.1",
                  label: "二级 2-1",
                  children: [
                    {
                      sortNum: "2.1.1",
                      label: "三级 2-1-1",
                    },
                    {
                      sortNum: "2.1.2",
                      label: "三级 2-1-2",
                    },
                    {
                      sortNum: "2.1.3",
                      label: "三级 2-1-3",
                    },
                    {
                      sortNum: "2.1.4",
                      label: "三级 2-1-4",
                    },
                  ],
                },
              ],
            },
          ];
    
          function removeindex(value) {
            let newarr = [],
              index = 0;
            let resolution = value.split(".");
            console.log(resolution, "==");
            if (resolution.length == 1) {
              // 第一层内容
              arr.forEach((item) => {
                index++;
                if (item.sortNum != value) {
                  item.sortNum = String(index);
                  newarr.push(item);
                }
              });
            } else if (resolution.length == 2) {
              console.log("value", value);
              // 第一层内容
              arr.forEach((item) => {
                index = 0;
                item.children = item.children.filter((zitem) => {
                  index++;
                  if (zitem.sortNum != value) {
                    zitem.sortNum = item.sortNum + "." + index;
                    return zitem;
                  }
                });
                newarr.push(item);
              });
            } else if (resolution.length == 3) {
              arr.forEach((item) => {
                item.children.forEach((zitem) => {
                  index = 0;
                  zitem.children = zitem.children.filter((sitem) => {
                    index++;
                    if (sitem.sortNum != value) {
                      sitem.sortNum = zitem.sortNum + "." + index;
                      return sitem;
                    }
                  });
                });
                newarr.push(item);
              });
            }
    
            return newarr;
          }
          console.log(removeindex("1.1"));
        </script>
      </body>
    </html>
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 赞助了问题酬金5元 5月26日
  • 创建了问题 5月19日

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误