作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的目录路径列表。我想将其转换为层次结构。
输入格式:
var paths = [
"A/B",
"A/B/C",
"A/B/C/D",
"A/B/C/E",
"F"
];
输出格式
[
{
"name": "A",
"children": [
{
"name": "B",
"children": [
{
"name": "C",
"children": [
{
"name": "D",
"children": []
},
{
"name": "E",
"children": []
}
]
}
]
}
]
},
{
"name": "F",
"children": []
}
]
在我的输入中,我不能有任何父参数。我正在进行的 fiddle 在这里 - https://jsfiddle.net/ashwyn/Laamg14z/2/
谢谢。
最佳答案
var paths = [
"A/B",
"A/B/C",
"A/B/C/D",
"A/B/C/E",
"F"
];
/* Output
[{"name":"A","children":[{"name":"B","children":[{"name":"C","children":[{"name":"D","children":[]},{"name":"E","children":[]}]}]}]},{"name":"F","children":[]}]
*/
console.log(convertToHierarchy(paths).children)
function convertToHierarchy(paths /* array of array of strings */) {
// Build the node structure
const rootNode = {name:"root", children:[]}
for (let path of paths) {
buildNodeRecursive(rootNode, path.split('/'), 0);
}
return rootNode;
}
function buildNodeRecursive(node, path, idx) {
if (idx < path.length) {
let item = path[idx]
let dir = node.children.find(child => child.name == item)
if (!dir) {
node.children.push(dir = {name: item, children:[]})
}
buildNodeRecursive(dir, path, idx + 1);
}
}
关于javascript - 层次结构的平面目录路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45075261/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!