我正在从服务器获取一些数据。数据如下所示:
abc/abca/abcsd/absc.dat
斜线的数量因路径而异。
现在我想使用 PrimeNG 在树视图中显示它。这是我有多远:
for (var i = 0; i < this.test.length; i++) {
let regex = /([^\/]+)\/?/g;
let result: RegExpExecArray;
while ((result = regex.exec(this.test[i])) !== null) {
console.log(result[1]);
if (result[1].search(".dat")>0) {
let item = {
"label": result[1],
"data": "Documents Folder",
"icon": "fa-file-text-o"
}
this.tree.push(item)
}
else {
let item = {
"label": result[1],
"data": "Documents Folder",
"expandedIcon": "fa-folder-open",
"collapsedIcon": "fa-folder",
"children": [{
}]
}
this.tree.push(item)
}
}
}
“测试”是前面描述的数据。我正在使用正则表达式搜索 /。"result[1]" 会给我斜线之间的字符串。我现在能做的是检查它是否为.dat,然后将其推送到树视图中,树视图结构如下所示(上面的示例):
-abc
-abca
-abcsd
-absc.dat
如您所见,我无法显示正确的文件夹结构。我可以通过获取斜杠的数量对其进行硬编码,然后执行一个 switch case 以正确的顺序推送它,但我想要 int 以一种动态的方式。
所以我需要的是动态的方式:
for 3 slashes:
first item: this.items.push(item)
sec. item : this.items[0].children.push(item)
third. item: this.items[0].children[0].children.push(item)
for x slashes:
???
有任何想法吗?