element 级联选择器数据源过滤?-灵析社区

疯狂的搬运工

element 级联选择器,选项是全国行政区划。此时后端返回的是一个二维数组,比如[['浙江省','杭州市','余杭区'],['江苏省','南京市]], 修改级联选择器选项的树型结构的值为 [ { "code": "32", "name": "江苏省", "children": [ { "code": "3201", "name": "南京市", "children": [ { "code": "320102", "name": "玄武区" }, { "code": "320104", "name": "秦淮区" }, { "code": "320105", "name": "建邺区" }, { "code": "320106", "name": "鼓楼区" }, { "code": "320111", "name": "浦口区" }, { "code": "320113", "name": "栖霞区" }, { "code": "320114", "name": "雨花台区" }, { "code": "320115", "name": "江宁区" }, { "code": "320116", "name": "六合区" }, { "code": "320117", "name": "溧水区" }, { "code": "320118", "name": "高淳区" } ] } ] }, { "code": "33", "name": "浙江省", "children": [ { "code": "3301", "name": "杭州市", "children": [ { "code": "330110", "name": "余杭区" } ] } ] } ] 请问这个算法该如何编写?

阅读量:12

点赞量:0

问AI
通过该方法可以实现树结构。 function convertToTree(data) { const tree = []; data.forEach(items => { let currentNode = tree; items.forEach((item, index) => { const existingNode = currentNode.find(node => node.name === item); if (existingNode) { currentNode = existingNode.children; } else { const newNode = { code: '', name: item, children: [] }; currentNode.push(newNode); currentNode = newNode.children; } if (index === items.length - 1) { currentNode.code = items[0]; } }); }); return tree; } const originalData = [['浙江省','杭州市','余杭区'],['江苏省','南京市']]; console.log(convertToTree(originalData)); 但是实现了也没有办法获取code码啊。。。应该让后端修改返回的数据格式。或者前端自己使用静态文件来使用数据,。