根据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]

 

posted @ 2023-07-07 10:46  Panax  阅读(5)  评论(0编辑  收藏  举报