You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何将斜杠分隔路径动态转为带parent属性的对象数组

问题描述

接收到斜杠分隔格式的文件路径字符串,示例如下:

let sampletext="Home/Student/Hello.txt";

需要动态将该字符串转换为带层级父子关系的数组,目标输出结构如下:

let idarray=[
    {
        'id':'Home',
        'parent': '',
    },
    {
        'id':'Student',
        'parent': 'Home',
    },
    {
        'id':'Hello.txt',
        'parent': 'Student',
    }
]
最优实现方案

核心思路:先通过/分割字符串得到所有路径节点,再遍历节点列表组装父子关系:首节点的父级为空字符串,其余节点的父级为当前遍历位置的前一个节点即可。
完整实现代码:

const sampletext = "Home/Student/Hello.txt";
// 分割路径,同时过滤首尾斜杠、连续斜杠产生的空值,兼容异常路径格式
const pathNodes = sampletext.split('/').filter(item => item);
const idarray = pathNodes.map((currentId, index) => ({
  id: currentId,
  parent: index === 0 ? '' : pathNodes[index - 1]
}));

方案优势

  • 性能最优:仅做一次分割、一次遍历,时间复杂度为O(n),无多余嵌套计算
  • 兼容性强:自动处理路径首尾多余斜杠、路径中连续斜杠的异常场景,比如传入/Home//Student/Hello.txt/也能得到正确结果
  • 易维护:代码逻辑直白,没有复杂隐式逻辑,后续调整需求成本低

内容的提问来源于stack exchange,提问作者user19350796

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 03:45:36