zoukankan      html  css  js  c++  java
  • 树形数据构造

    //原始从服务器返回的数据
    const temp = [
    {"categoryId":7, "parent":0, "name":"test0"},
    {"categoryId":8, "parent":0, "name":"test1"},
    {"categoryId":9, "parent":0, "name":"test2"},
    {"categoryId":68, "parent":0, "name":"test3"},
    {"categoryId":349, "parent":0, "name":"test4"},
    {"categoryId":74, "parent":7, "name":"test5"},
    {"categoryId":20, "parent":8, "name":"test6"},
    {"categoryId":21, "parent":8, "name":"test7"},
    {"categoryId":67, "parent":8, "name":"test8"},
    {"categoryId":185, "parent":9, "name":"test9"},
    {"categoryId":186, "parent":68, "name":"test10"},
    {"categoryId":187, "parent":68, "name":"test11"},
    {"categoryId":188, "parent":68, "name":"test12"},
    {"categoryId":189, "parent":68, "name":"test13"},
    {"categoryId":190, "parent":185, "name":"test14"},
    {"categoryId":191, "parent":185, "name":"test15"},
    {"categoryId":192, "parent":185, "name":"test16"},
    {"categoryId":350, "parent":349, "name":"test17"},
    {"categoryId":351, "parent":349, "name":"test18"},
    ];
    //想要改造成的数据:
    [
    {"categoryId":7,"parent":0,"name":"test0",
      "children":[{"categoryId":74,"parent":7,"name":"test5"}]},
    {"categoryId":8,"parent":0,"name":"test1",
      "children":[{"categoryId":20,"parent":8,"name":"test6"},
                  {"categoryId":21,"parent":8,"name":"test7"},
                  {"categoryId":67,"parent":8,"name":"test8"}]},
    {"categoryId":9,"parent":0,"name":"test2",
      "children":[{"categoryId":185,"parent":9,"name":"test9",
        "children":[{"categoryId":190,"parent":185,"name":"test14"},
                    {"categoryId":191,"parent":185,"name":"test15"},
                    {"categoryId":192,"parent":185,"name":"test16"}]}]},
    {"categoryId":68,"parent":0,"name":"test3",
      "children":[{"categoryId":186,"parent":68,"name":"test10"},
                  {"categoryId":187,"parent":68,"name":"test11"},
                  {"categoryId":188,"parent":68,"name":"test12"},
                  {"categoryId":189,"parent":68,"name":"test13"}]},
    {"categoryId":349,"parent":0,"name":"test4",
      "children":[{"categoryId":350,"parent":349,"name":"test17"},
      {"categoryId":351,"parent":349,"name":"test18"}]}
    ]
    function arrayHandle(arr) {
      arr.forEach(data => {
        objectHandle(data);
      });
      return arr;
    }
    function objectHandle(obj) {
      const items = temp.filter(data => data.parent === obj.categoryId);
      if (items.length) {
        if (obj.children) {
          obj.children.concat(items);
        } else {
          obj.children = items;
        }
        return arrayHandle(items);
      } else {
        return obj;
      }
    }
    //这步将返回构造的数据
    arrayHandle(temp.filter(data => data.parent === 0));
  • 相关阅读:
    数据库mysql中编码自动生成
    WPF的项目,ListBox 纵向滚动条不显示
    C# 判断List集合中是否有重复的项
    EF 取出demical数据,但需要去点小数,排序
    数据库SQL优化大总结之 百万级数据库优化方案
    C# 实现OrderBy按多个字段排序
    WPF
    WPF-MVVM学习心德(WinForm转WPF心德)
    WPF MVVM 如何在ViewModel中操作View中的控件事件
    列举出常见的Java面试题100+,我靠这个在十月拿到了阿里的offer
  • 原文地址:https://www.cnblogs.com/zlog/p/10312933.html
Copyright © 2011-2022 走看看