【发布时间】:2018-06-04 04:07:17
【问题描述】:
我有格式的文本
var text = "{{A-B-C}{A-C-B}D-B}{E}F" //example 1
文本可以是其他内容,例如:
var text = "{{{A-B-C}{C-A-B}D-E}{B-C}E-A}{F}G" //example 2
因此节点结构可以改变,但 - 和 {} 的分隔符保持不变以指示层次结构。
我想以此创建一棵树作为 javascript 对象或用于 d3js 树布局的 JSON。我可以使用 lodash/jquery 或我希望的任何其他库。
我需要的最终布局就像这张图片,对于上面的 var text 示例 1
如何将字符串转换为如下格式的嵌套数据(var text 示例 1)。我一直在努力寻找一种方法来做到这一点。任何帮助或指导表示赞赏。
var textobject = {
name: "F",
children: [{
name: "E",
children: []
},
{
name: "B",
children: [{
name: "D",
children: [{
name: "B",
children: [{
name: "C",
children: [{
name: "A",
children: []
}, ]
}, ]
}, {
name: "C",
children: [{
name: "B",
children: [{
name: "A",
children: []
}, ]
}, ]
}, ]
}, ]
},
]
}
【问题讨论】:
-
been struggling to find a way to do it in an efficient manner.从您认为效率低下的事情开始,然后改进它 - 发布代码? -
在图像和文本输入中:
A-B-C处于同一级别,但在所需的输出中:A是B的子代C的子代,有点困惑.. -
感谢您查看@Taki。一切都是某物的孩子。那就是 - 表示左边的字符是右边的字符的孩子。 { } 括号表示具有分支的子级。这是否澄清了一点? - 请原谅我手机上的简洁性。
标签: javascript json string d3.js lodash