• JavaScript中列表转成树结构


    // 列表转树结构
      list_to_tree() {
       let a = [
        {
         id: 3,
         name: '测试3',
         up_id: 2,
        },
        {
         id: 2,
         name: '测试2',
         up_id: 1,
        },
        {
         id: 1,
         name: '测试1',
         up_id: null,
        },
       ]
       let toTree = data => {
        let result = []
        if (!Array.isArray(data)) {
         return result
        }
        let map = new Map()
        data.forEach(item => {
         delete item.children
         map.set(item.id, item)
        })
        data.forEach(item => {
         let parent = map.get(item.up_id)
         if (parent) {
          ;(parent.children || (parent.children = [])).push(item)
         } else {
          result.push(item)
         }
        })
        return result
       }
       console.log(toTree(a))
      },

    结果如下:

    // 递归删除某些节点(暂未测试过)
      filterTree(data) {
       for (let i = 0; i < data.length; i++) {
        if (data[i].id == 2) {
         delete data[i].children
        } else {
         if (data[i].children.length != 0) {
          return this.filterTree(data[i].children)
         }
         return
        }
       }
      },

     参考链接:https://www.cnblogs.com/mengfangui/p/10494601.html

  • 相关阅读:
    AJAX 验证用户名是否存在
    字符串变量中保存路径
    hdu Kaitou Kid The Phantom Thief (2)
    hdu 连连看
    hdu Sequence one
    hdu Sticks
    hdu Nightmare
    hdu Sudoku Killer
    hdu Dota all stars
    hdu Remainder
  • 原文地址:https://www.cnblogs.com/lyt520/p/16039995.html
Copyright © 2020-2023  润新知