我是只兔子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 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA
  • ¥20 csv格式数据集预处理及模型选择