正在搜寻SO帖子,还没有任何答案。
我有一个像这样的文件夹数组:
[{
"name": "home",
"folders": [{
"name": "New Folder",
"folders": [{
"name": "53w5r",
"folders": [{
"name": "test",
"folders": []
}]
}]
}, {
"name": "public folder",
"folders": [{
"name": "cold",
"folders": []
}, {
"name": "hot",
"folders": []
}]
}, {
"name": "My Folder",
"folders": []
}]
}]
我需要使用如下路径字符串来搜索此数组:
"home,New Folder,53w5r,test"
我正在搜索该文件夹,因此findFolder方法将使用上面的字符串,并在“ test”文件夹中返回文件夹对象。
假定用逗号分隔的路径始终有效,则可以使用以下简单方法遍历数据:
var str = "home,New Folder,53w5r,test";
var data = [{
"name": "home",
"folders": [{
"name": "New Folder",
"folders": [{
"name": "53w5r",
"folders": [{
"name": "test",
"folders": []
}]
}]
}, {
"name": "public folder",
"folders": [{
"name": "cold",
"folders": []
}, {
"name": "hot",
"folders": []
}]
}, {
"name": "My Folder",
"folders": []
}]
}];
var folderNames = str.split(",");
var result = folderNames.reduce((results, folderName, index) => {
var currFolder = results.find(folder => folder.name === folderName);
// if last folder, return entire folder, otherwise return currFolder.folders
return index === folderNames.length-1 ? currFolder : currFolder.folders;
}, data);
console.log(result);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句