如何构建与 react-sortable-tree 兼容的 JSON 对象(每个嵌套对象都有标题、子对象)以呈现文件树。
例如,我有这个文件路径数组。
var filePaths = [
"Diagnoses/Endocrine disorders/Thyroid disorders/Congenital hypothyroidism",
"Diagnoses/Endocrine disorders/Thyroid disorders/Acquired hypothyroidism",
"Diagnoses/Endocrine disorders/Thyroid disorders/Acquired hypothyroidism/Postsurgical hypothyroidism"
];
我想要一个这样的 JSON 对象。
var treeData = [
{
title: 'Diagnoses',
children: [{
title: 'Endocrine disorders',
children: [{
title: 'Thyroid disorders',
children: [
{
title: 'Congential hypothyroidism'
},
{
title: 'Acquired hypothyroidism',
children: [{
title: 'Postsurgical hypothyroidism'
}]
}
]
}]
}]
}
];
编辑:我试过这个,但在第一次迭代之后,我覆盖了整个树的 children 属性。我尝试了几次检查来阻止这种情况,但它们并没有完全成功。
var hierarchy = filePaths.reduce(function(hier,path){
var x = hier;
path.split('/').forEach(function(item, index, array){
if(x[0].title != item){
x[0].title = item;
}
// console.log(index, array.length)
if (index != array.length - 1 && !x[0].children){
x[0].children = [{
title: ''
}];
}
x = x[0].children;
});
return hier;
}, [{title: ''}]);