资讯专栏INFORMATION COLUMN

数组转对象编程题

whidy / 2281人阅读

摘要:编写函数实现如下功能输入输出实现将解析为二维数组最终输出的结果遍历,将内部的每一个数组转为对应的对象格式递归如果某个重复的数组元素已经被转为对象的元素,则直接进行下一项的转化第一项的已经转化为对象元素后,第二项的不用转化,其后边的直接追加在

编写函数实现如下功能:

输入:

</>复制代码

  1. const pathList = [
  2. "/a/b",
  3. "/a/2/c",
  4. "/d"
  5. ]

输出:

</>复制代码

  1. {
  2. "a": {
  3. "2": {
  4. "c": {}
  5. },
  6. "b": {}
  7. },
  8. "d": {}
  9. }

实现:

</>复制代码

  1. function convertArrToObj(arr) {
  2. // 将pathList解析为二维数组
  3. const arrTemp = arr.map(item => item.split("/").filter(item => item !== ""));
  4. // 最终输出的结果
  5. const result = {};
  6. // 遍历,将内部的每一个数组转为对应的对象格式
  7. arrTemp.forEach(innerArr => {
  8. arrToObj(result, innerArr);
  9. });
  10. function arrToObj(obj, innerArr) {
  11. let i = 0;
  12. if (innerArr[i] && !obj[innerArr[i]] && i < innerArr.length) {
  13. obj[innerArr[i]] = {};
  14. // 递归
  15. arrToObj(obj[innerArr[i]], innerArr.slice(i + 1));
  16. i++;
  17. } else if (innerArr[i] && obj[innerArr[i]]) {
  18. // 如果某个重复的数组元素已经被转为对象的元素,则直接进行下一项的转化
  19. // "/a/b", "/a/2/c", 第一项的a已经转化为对象元素后,第二项的a不用转化,其后边的/2/c直接追加在a后边
  20. arrToObj(obj[innerArr[i]], innerArr.slice(i + 1));
  21. i++;
  22. }
  23. }
  24. return result;
  25. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100797.html

相关文章

  • W3Cschool——中级脚本算法

    摘要:依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回。碱基对是一对和,为给定的字母匹配缺失的碱基。输入检查算法挑战检查一个值是否是基本布尔类型,并返回或。基本布尔类型即和。二进制字符串是以空格分隔的。 showImg(https://segmentfault.com/img/remote/1460000010866723); 前言 W3Cschool上有个编程挑战,里面的题...

    gecko23 评论0 收藏0
  • [面试专]一线互联网大厂面试总结

    摘要:道阻且长啊前端面试总结前端面试笔试面试腾讯一面浏览器工作原理浏览器的主要组件包括用户界面包括地址栏后退前进按钮书签目录浏览器引擎用来查询及操作渲染引擎的接口渲染引擎渲染界面和是基于两种渲染引擎构建的,使用自主研发的渲染引擎,和都使用网络用来 道阻且长啊TAT(前端面试总结) 前端 面试 笔试 面试 腾讯一面 1.浏览器工作原理 浏览器的主要组件包括: 用户界面- 包括地址栏、后退/前...

    lemanli 评论0 收藏0
  • [面试专]一线互联网大厂面试总结

    摘要:道阻且长啊前端面试总结前端面试笔试面试腾讯一面浏览器工作原理浏览器的主要组件包括用户界面包括地址栏后退前进按钮书签目录浏览器引擎用来查询及操作渲染引擎的接口渲染引擎渲染界面和是基于两种渲染引擎构建的,使用自主研发的渲染引擎,和都使用网络用来 道阻且长啊TAT(前端面试总结) 前端 面试 笔试 面试 腾讯一面 1.浏览器工作原理 浏览器的主要组件包括: 用户界面- 包括地址栏、后退/前...

    xfee 评论0 收藏0
  • [面试专]一线互联网大厂面试总结

    摘要:道阻且长啊前端面试总结前端面试笔试面试腾讯一面浏览器工作原理浏览器的主要组件包括用户界面包括地址栏后退前进按钮书签目录浏览器引擎用来查询及操作渲染引擎的接口渲染引擎渲染界面和是基于两种渲染引擎构建的,使用自主研发的渲染引擎,和都使用网络用来 道阻且长啊TAT(前端面试总结) 前端 面试 笔试 面试 腾讯一面 1.浏览器工作原理 浏览器的主要组件包括: 用户界面- 包括地址栏、后退/前...

    leap_frog 评论0 收藏0

发表评论

0条评论

whidy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<