JS根据文件夹路径递归得到一个对象型数组

发布于 2022-09-13 01:18:45 字数 225 浏览 12 评论 0

比如一个路径为 A/B/C/ 的文件夹路径

我想得到如下:

[{name:"A",path:"A/"},
 {name:"B",path:"A/B/",
 {name:"C",path:"A/B/C/"
]

我能做的就是先把路径 用split("/") 得到一个数组。然后做个循环。

但好像有个什么reduce 递归的方法可以更简洁的写出上面的需求呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

棒棒糖 2022-09-20 01:18:45
'A/B/C/'.match(/.\//g)
    .map(
        (name, index, array) => ({
            name,
            path: array.filter(
                (item, subIndex) => subIndex <= index
            ).join('')
        })
    )

不过我总感觉用正则可能还有更简短的写法。

∞觅青森が 2022-09-20 01:18:45
'A/B/C/'.split('/').filter(s=>s).map((item,index,array)=>({name:item,path:array.slice(0,index+1).join('/') + '/'}))
 //[{name: "A", path: "A/"},{name: "B", path: "A/B/"},{name: "C", path: "A/B/C/"}]

image.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文