Javascript 使用路径访问对象的一部分

Javascript 使用路径访问对象的一部分,javascript,iteration,Javascript,Iteration,具有一个对象,如下所示: const arrObj = [ { name: 'FolderA', path: '/', child: [ { name: 'FolderB', path: '/FolderA', child: [ { name: 'FolderC0', path: '/FolderA/FolderB', child: [],

具有一个对象,如下所示:

const arrObj = [
{
   name: 'FolderA',
   path: '/',
   child: [
     {
       name: 'FolderB',
       path: '/FolderA',
       child: [
         {
           name: 'FolderC0',
           path: '/FolderA/FolderB',
           child: [],
         },
         {
           name: 'FolderC1',
           path: '/FolderA/FolderB',
           child: [],
         },
       ],
     },
   ],
 },
 {
   name: 'FolderM',
   path: '/',
   child: [],
 },
];
如果路径为字符串:

var path = '/FolderA/FolderB', 
我是否能够使用array reduce访问FolderB中对象的子部分? 尝试此操作失败:

var res = path.split('/').reduce(function(o, k) {
 return o && o[k];
}, arrObj);
使用及

const path='/FolderA/FolderB'
常量数据=[{name:'FolderA',path:'/',child:[{name:'FolderB',path:'/FolderA',child:[{name:'FolderC0',path:'/FolderA/FolderB',child:[],},},},},{name:'FolderA/FolderB',path:'/FolderA/FolderB',child:[],},},{name:'FolderM',path:'/',child:[],},]
const res=path.slice(1).split(“/”).reduce((a,c)=>{
返回a.find(({name})=>name==c.child;
},数据);

控制台日志(res)没有名为
FolderA
的属性。您需要找到具有该名称的对象。老实说,我不喜欢那种JSON结构。为什么需要
路径
属性?我是说,你到底想怎么解析,你想找什么道具?编辑:可以有多种方法,如检查路径是否匹配或通过
name
properties。我也不喜欢它,但这是我必须处理的,因此以字符串形式使用路径时,我必须以某种方式访问它的部分,以便我可以操作它:(@Nika对我来说似乎是一个很好的结构,是的,你可以争辩说
路径
可能是多余的,但是在这里存储
路径
的一个优点是,文件夹项目可以发送到另一个函数,而
路径也在那里,否则就会丢失。这在更深层次上是行不通的。你把它限制在仅适用于2级深度。请尝试将“/FolderA/FolderB/FolderC0”作为pth。@Nika,为什么它不能在2级以上工作?它为FolderC0返回一个空数组,因为没有子级。我的意思是,即使在那里添加数组,它也会有相同的问题。编辑:我想说的是,它应该是递归的,而不是一个reduce。编辑:对不起,我这里有案件问题,别理我。@kemicofa-非常感谢,伙计:)