呃,其实你这个就是个简单的列表转树结构... function listToTree (srcList) { let destList = [] srcList.forEach(pathList => { let levelList = destList for (let name of pathList) { let obj = levelList.find(item => item.name === name) if (!obj) { obj = { name, sub: [] } levelList.push(obj) } levelList = obj.sub } }) return destList } 测试: list = [ ['广东', '广州', '荔湾'], ['广东', '广州', '番禺'], ['广东', '珠海'], ] console.log(JSON.stringify(listToTree(list))) 输出 [ { "name":"广东", "sub":[ { "name":"广州", "sub":[ { "name":"荔湾", "sub":[ ] }, { "name":"番禺", "sub":[ ] } ] }, { "name":"珠海", "sub":[ ] } ] } ]
呃,其实你这个就是个简单的列表转树结构...
测试:
输出