系统存储目录路径的格式化(JS)
一道题
输入数据:
var pathList = [ '/a/b', '/a/2/c', '/d', ];
格式化数据(输出):
{ "a": { "2": { "c": {} }, "b": {} }, "d": {} }
格式化函数的实现示例:
/** * 格式化路径的函数 * @param {string[]} pathList - 路径列表 * @return {Object} */ function pathFormat(pathList) { // 格式化数据 const answer = {}; /** * 递归处理格式化过程 * @param {string[]} list - 目录字符串列表 * @param {Object} level - 路径信息对象 * @return {undefined} */ const rec = (list, level) => { // 终止条件 if (list.length === 0) return; // 当前目录的名称(从最外层开始依次处理) const key = list.shift(); // 如果当前目录的下级信息对象还不存在,则进行初始化 if (level[key] === undefined) { level[key] = {}; } // 处理下一级 rec(list, level[key]); }; // 迭代处理路径列表中的每一项 for (const path of pathList) { // 目录字符串片段 const frags = path.split('/').filter(Boolean); rec(frags, answer); } return answer; } console.log(JSON.stringify(pathFormat(pathList), null, 2));
End
分类:
JavaScript
标签:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?