根据paentId 去删选数据
function parseTree(tree) { const res = [] array.forEach(item => { // 如果item中有children,则递归调用 item.parentId = item.parentId || 0; let id = item.id let children = item.children if (children) { children.forEach(child => child.parentId = id) res.push(...parseTree(children)) } res.push(item) }) return res }
let data = parseTree(cities) // 先保存好数据 function findByParentId(id) { return data.filter(item => item.parentId === id) }
let col1 = findByParentId(0) // 这个主要取决于数据格式,如果说返回的有一个唯一的祖先节点(例如中国,id是100000),则直接传入100000即可,如果没有这个,而是直接就给34个省级行政区,则需要传0 let col2 = findByParentId(col1[0].id) // 因为默认时候肯定停留在第一个选项,所以查出它的直接子节点放到第二列就可以。 let col3 = findByParentId(col2[0].id) // 同理设置第三列 let columns = [col1, col2, col3]
作者:人参,每篇随笔皆原创(除非注明原作者的随笔),欢迎指正!