优化缩进代码以获取路径层级
在原始代码中,使用了一个循环来计算每个路径项的缩进次数,这是一个相对低效的方法。优化的代码采用了一种更直接的方法,通过计算字符串中剩余空格的数量来确定缩进次数。
优化后的代码
const lines = str.split("") .map(line => ({ level: ~~((line.length - line.trimstart().length) / 4), value: line.trim() }));
登录后复制
通过将字符串转换为行的列表并使用结构化对象来存储缩进级别和路径项,我们可以简化代码并提高效率。
修正越级问题
lines.reduce((level, it) => { if (it.level - level > 1) { it.level = level + 1; } return it.level;}, 0);
登录后复制
在某些情况下,层级差可能会超过 1,例如 e 和 f 之间的情况。优化的代码使用 reduce 方法来修正这种情况,确保缩进级别正确一致。
路径算法
const path = [];const result = [];for (const it of lines) { const { level, value } = it; path[level] = value; result.push(path.slice(0, level + 1).join("/"));}
登录后复制
该算法使用一个path数组来跟踪当前路径,并且每当遇到新项时都会更新数组。它通过连接数组中相关部分来构造路径字符串,并将结果推送到 result 数组中。
这种优化的代码提高了效率,通过减少循环和使用更直接的方法来计算缩进次数,并通过引入修正越级问题的机制来提高准确性。
以上就是如何优化代码以获取路径层级?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2651320.html