从嵌套集合模型 javascript 创建 JSON

2023-12-24

我有这个数据结构,显示嵌套树中每个节点的深度:

[
  {
    "name": "ELECTRONICS",
    "depth": 0
  },
  {
    "name": "TELEVISIONS",
    "depth": 1
  },
  {
    "name": "TUBE",
    "depth": 2
  },
  {
    "name": "PLASMA",
    "depth": 2
  },
  {
    "name": "GAME CONSOLES",
    "depth": 1
  },
  {
    "name": "MP3 PLAYERS",
    "depth": 1
  },
  {
    "name": "FLASH",
    "depth": 2
  }]

我想使用 JavaScript / node.js / Angular 将预览数据转换为分层 JSON,如下所示:

[{
    "name": "ELECTRONICS",
    "children": [
      {
        "name": "TELEVISIONS",
        "children": [
          {
            "name": "TUBE"
          },
          {
            "name": "PLASMA"
          }]
     }, 
     {
        "name": "GAME CONSOLES"
     }, 
     {
        "name": "MP3 PLAYERS",
        "children": [
          {
            "name": "FLASH"
         }]
    }]
}]

你可以使用Array#forEach https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach和一个用于参考深度的数组。

var data = [{ "name": "ELECTRONICS", "depth": 0 }, { "name": "TELEVISIONS", "depth": 1 }, { "name": "TUBE", "depth": 2 }, { "name": "PLASMA", "depth": 2 }, { "name": "GAME CONSOLES", "depth": 1 }, { "name": "MP3 PLAYERS", "depth": 1 }, { "name": "FLASH", "depth": 2 }],
    tree = [];

data.forEach(function (a, i, aa) {
    var lastDepth = (aa[i - 1] || {}).depth, o;
    if (a.depth !== 0 && a.depth > lastDepth) {
        o = this[lastDepth][this[lastDepth].length - 1]
        o.children = o.children || [];
        this[a.depth] = o.children;
    }
    this[a.depth].push({ name: a.name });
}, [tree]);

console.log(tree);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从嵌套集合模型 javascript 创建 JSON 的相关文章

  • JS 保留以零结尾的小数[重复]

    这个问题在这里已经有答案了 在JavaScript中 是否可以 锁定 十进制数 以保留以零结尾的 浮点数 例如 我有 2 个不同的数字 如下所示 伪代码 let a 1 0 let b 1 00 a b true should be fal
  • React JS 服务器端问题 - 找不到窗口

    你好 我正在尝试在我的reactJS项目中使用react rte 我有服务器端渲染 每次我想使用这个包时 我都会得到 return msie 6 9 b test window navigator userAgent toLowerCase
  • 将 Firebase FCM 添加到 ReactJS 应用程序

    我正在尝试向我的 ReactJS 应用程序中的用户发送推送通知 我已添加 firebase 请求用户通知权限 这正在发挥作用 但现在我想注册设备令牌 但这给了我错误 消息传递 我们无法注册默认的 Service Worker 无法注册 Se
  • 检索 css3 缩放元素的宽度/高度

    我正在与 offsetWidth 属性的奇怪之处 我认为 作斗争 这是场景 比方说 我有一个span标签 在我的js中 在某个时刻我执行css3转换 对于这个元素 例如 el set styles transform scale scale
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • jq:将对象数组转换为对象

    我收到了来自curl的回复 格式如下 list value 1 id 12 value 15 id 13 value 4 id 14 给定 id 之间的映射 如下所示 12 newId1 13 newId2 14 newId3 我想做这个
  • 如何仅显示/隐藏此 bootstrapvue 表的第二列和第三列?

    下面的代码将显示 隐藏 a 中的所有列BootstrapVue桌子 代码的来源就是这里的答案 使用 bootstrap vue 组件和 bootstrap 3 动态显示 隐藏列 https stackoverflow com questio
  • 如何使用shell脚本从json字符串中grep特定字段值[重复]

    这个问题在这里已经有答案了 下面是文件中可用的 JSON 字符串 我需要从中提取值status在 shell 脚本中 预期输出 status success 响应 json eventDate null dateProccessed nul
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • 模板中带有 ng-if 的 angularjs 指令

    我正在构建一个在模板内使用 ng if 的指令 奇怪的是 提供给链接函数的元素没有扩展ng if代码 它只是ng if的注释行 经过一番尝试 我发现通过将链接代码包装在 timeout 中似乎可以使其正常工作 但我想知道这是否不是正确的处理
  • Web组件中嵌套槽的内容不可见

    我有一个 Web 组件 它应该接受任意元素来包装其内容 虽然我可以在 Chrome 开发工具中看到插槽已正确分配 但 DOM 中什么也没有出现 以前有人见过这个问题吗 定义 class ExampleParent extends HTMLE
  • 如何获取nodejs程序中的nodejs版本?

    In a Node js 的调试器 https github com rocky trepanjs 有一个命令显示V8版本和调试器包版本 如何获取nodejs版本 我想我基本上可以运行命令node version or nodejs ver
  • 包含 contains 的 json 格式查询

    我在 ansible 中有以下 json 输出 active transaction null cores 4 hostname alpha auth wb01 active transaction null cores 4 hostnam
  • 如何动态调整jqgrid到当前窗口大小?

    如何动态调整jqgrid到当前窗口大小 基于javascript jQuery 最好的例子在这里 TinyMCE 去 http www tinymce com tryit full php http www tinymce com tryi
  • 带有 Odata Next Page 和 Count 的 Web Api 未出现在 JSON 响应中

    我有一个 webapi 方法 我想打开 oData 分页等 我按照中的例子http www asp net web api overview odata support in aspnet web api supporting odata
  • 如何在 webpack 中渲染嵌套的 SASS?

    采取以下CSS MyComponent color blue Button color red 以及以下 React 组件 import React from react import classes from MyComponent sc
  • Javascript 浮点乘以 100 仍然有错误

    我有一个货币字段的文本输入 我在字段中输入 33 91 并在尝试使用 乘以 100 技术时得到以下结果 var curWth parseInt trans withdraw index val 100 3390 var curWth par
  • 我可以使用 ASP.NET WebForms 母版页在每个内容页中包含不同的 javascript/css 文件吗?

    我有几个使用相同母版页的内容页 它们并不都需要包含在相同的 javascript 和 css 文件中 tag 是否可以更改内容来自内容页面的标签 确实如此 但我建议采取一些不同的做法 我在关闭正文标签的正上方放置了一个内容占位符 然后我填充
  • 尝试使用 Javascript 解决对称差异

    我正在尝试找出对称的解决方案 使用 javascript 完成以下任务的差异 目标 接受未指定数量的数组作为参数 保留数组中数字的原始顺序 不删除单个数组中数字的重复项 删除数组中出现的重复项 因此 例如 如果输入是 1 1 2 6 2 3
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工

随机推荐

  • Websphere Liberty:JMS 会话不起作用

    我正在将 EJB 应用程序从 websphere 9 0 迁移到 Liberty 我正在使用应用程序服务器迁移实用程序来帮助我进行迁移 列出的问题之一是 移植的本地事务 JMS 会话在 Liberty 中不起作用 我查看了帮助中提到的详细信
  • 如何强制 jQuery“监听”未来的 AngularJS ng-repeat 元素并激活插件?

    对 jQuery 有相当的经验 对 AngularJS 很陌生 我有一个页面 其中包含颜色列表 可变数字 并附有 jQuery 颜色选择器 由类 colorpicker 标记 在 PHP 生成的静态页面版本上 效果很好 但是将其转换为 ng
  • 使用 vanilla JS 突出显示活动选项卡

    我正在创建一个选项卡式导航栏 其中当选项卡处于活动状态时 它应该将其颜色更改为我设置的颜色 使用选项卡浏览页面效果很好 但活动选项卡上的颜色突出显示似乎不起作用 到目前为止 这是我的代码 HTML section class tab sec
  • Jenkins 构建时的 java.nio.file.AccessDeniedException

    我正在 MacOSX 服务器上设置 Jenkins 系统 以便在 svn 签入后自动构建 但是当构建开始时 我在控制台输出中收到这些 java 错误 有谁有詹金斯和这些错误的经验吗 Gestartet durch Benutzer anon
  • 在 Java 中创建一个新线程的成本有多高?我们什么时候应该考虑使用线程池?

    我想知道应该使用线程池的界限在哪里 在不使用线程池的情况下 每秒可以创建多少个新线程 仍然可以避免明显的性能损失 是否有任何可观察的开源线程池实现 考虑到成本 唯一有效的答复是亲自测试它 不是那么优雅的方式告诉你我从未做过这样的测试 也永远
  • 保存和恢复事件处理程序

    我的类包含数据集 TDataSet 我的班级的用户可以为此数据集分配事件处理程序 ds FieldByName ID OnChange ID OnChange 然后我必须重新打开数据集 ds Close ds Open 之后所有事件处理程序
  • C# 中的枚举有成员数量限制吗?

    我想知道枚举结构类型对其成员是否有限制 我有一个非常大的 变量 列表 我需要将其存储在枚举中或作为类中的常量 但我最终决定将它们存储在类中 但是 我对成员的限制有点好奇枚举 如果有 那么 枚举在 Net 上有限制吗 是的 会员人数具有独特的
  • Typescript - 为类成员设置默认值

    我有一个简单的模型 export class Profile extends ServerData name string email string age number 当我调用服务器 Angular 4 http 时 我经常得到以下响应
  • 在 Ruby 中按数组中对象的值排序

    我的数组中有一堆对象 想按每个对象具有的值进行排序 每个对象中的相关属性都是一个数值 例如 1 bunch of other stuff 5 12 3 会成为 1 bunch of other stuff 3 5 12 我想按每个对象中存储
  • 如何将大小相等的正方形网格减少到最小的矩形集?

    如果我有一个由相同大小的正方形组成的任意大小的网格 它们之间没有间距 我需要知道一种有效的方法将它们减少为minimum矩形的数量 例如 如果每个星号代表一个正方形 那么这可以减少为一个大矩形 虽然这可以减少为两个矩形 gt 1 2 一个明
  • 如何检查 Android 应用是否是设备所有者?

    我正在使用机器人框架执行一个测试用例 我必须安装一个应用程序并将其设置为设备所有者 然后检查同一应用程序是否已成为设备所有者 我已经搜索了 Stack Overflow 和其他搜索引擎结果 但在那里 他们提到了如何使应用程序成为设备所有者
  • 更改 LibGDX 中的坐标系 (Java)

    LibGDX 有一个坐标系 其中 0 0 位于左下角 就像这张图片 https i stack imgur com jVrJ0 png https i stack imgur com jVrJ0 png 这让我头撞墙 主要是因为我正在移植一
  • 带有片段参数的 Grails render()

    有没有办法将 render 与片段参数一起使用 以便在页面加载时自动滚动到页面的特定部分 类似于我们如何调用 redirect controller book action show fragment profile 你不能将它传递给ren
  • Webpack:html-loader 无法解析 srcset 图像

    我正在使用 webpack2 并使用 html loader 如下配置所示 test html loader html loader options attrs img src img srcset minimize true caseSe
  • 如何使用内部构造函数和静态工厂方法来模拟类?

    我有课我的服务这取决于ABC服务 Nuget包 sdk public class MyService private readonly ABCService abc public MyService ABCService abc this
  • 适配器中的启动意图

    我想从这个基本适配器开始一个新的活动 public class EfficientAdapter extends BaseAdapter private Activity activity private ArrayList
  • 为什么我可以 ping 通服务器但无法通过 SSH 连接? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当我 ping 我的服务器时 它响应 user localhost ping my server PING my server 111 111 111
  • Django 发送带有链接的电子邮件

    我有一个发送代码 def send email site id email subject Sub from email to EMAIL FROM email text content Text html content render t
  • ASP.NET和Android无线调试无需互联网

    我有一个ASP NET MVC Web Application这是通过我的 Android 设备显示在Android Application with a WebView活动 当 Android 设备和服务器都在同一互联网连接上时 我可以使
  • 从嵌套集合模型 javascript 创建 JSON

    我有这个数据结构 显示嵌套树中每个节点的深度 name ELECTRONICS depth 0 name TELEVISIONS depth 1 name TUBE depth 2 name PLASMA depth 2 name GAME