JS 数组字符串转换为对象 发表于 2021-11-10 更新于 2023-01-16 分类于 JavaScript 本文字数: 1k 阅读时长 ≈ 1 分钟 用 glob 拿到了文件列表,想转换成 tree 12345678910111213141516171819202122232425// 转换前:let list = [ 'src/index.js', 'src/aaa/1.js', 'src/aaa/index.js', 'src/aaa/bbb/2.js', 'src/aaa/bbb/3.js', 'src/aaa/bbb/4.js',];// 转换后let out = { src: { 'index.js': 'index.js', aaa: { '1.js': '1.js', 'index.js': 'index.js', bbb: { '2.js': '2.js', '3.js': '3.js', '4.js': '4.js', }, }, },}; 暂时没想到更优雅的方式,傻傻的循环递归把 1234567891011121314151617181920let list = e.split('\r\n');let obj = {};for (let index = 0; index < list.length; index++) { const element = list[index]; let arr = element.split('/'); let temp = obj; for (let index = 0; index < arr.length; index++) { const str = arr[index]; if (index + 1 === arr.length) { temp[str] = str; } else { if (!temp[str]) { temp[str] = {}; } temp = temp[str]; } }}console.log(`obj`, obj); 类似的场景JS Tree 树状数据 Object Array互转 相关文章 解决Axios额外的发起一次option请求 JS调试 - 跳过或者忽略不需要的js文件 - Blackbox Chrome Extension Scripts 使用 Docker 构建前端项目 提取出CODEIF核心部分代码 ESLint 配置允许使用any 打赏 微信支付 支付宝 本文作者: Mt.r 本文链接: https://trycoding.fun/JavaScript/js-array-to-object/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!