编写函数实现如下功能:输入:const pathList = [ ‘/a/b’, ‘/a/2/c’, ‘/d’]输出:{ “a”: { “2”: { “c”: {} }, “b”: {} }, “d”: {}}实现:function convertArrToObj(arr) { // 将pathList解析为二维数组 const arrTemp = arr.map(item => item.split(’/’).filter(item => item !== ‘’)); // 最终输出的结果 const result = {}; // 遍历,将内部的每一个数组转为对应的对象格式 arrTemp.forEach(innerArr => { arrToObj(result, innerArr); }); function arrToObj(obj, innerArr) { let i = 0; if (innerArr[i] && !obj[innerArr[i]] && i < innerArr.length) { obj[innerArr[i]] = {}; // 递归 arrToObj(obj[innerArr[i]], innerArr.slice(i + 1)); i++; } else if (innerArr[i] && obj[innerArr[i]]) { // 如果某个重复的数组元素已经被转为对象的元素,则直接进行下一项的转化 // ‘/a/b’, ‘/a/2/c’, 第一项的a已经转化为对象元素后,第二项的a不用转化,其后边的/2/c直接追加在a后边 arrToObj(obj[innerArr[i]], innerArr.slice(i + 1)); i++; } } return result;}