深度优先

const deepTree = (data, arr = []) => {
    for (let i = 0; i < data.length; i++) {
      let item = data[i]
      arr.push(item.id)
      if (item.children && item.children.length) {
        deepTree(item.children, arr)
      }
    }
    return arr
  }

广度优先

  const widthTree = (data) => {
    let stack = []
    let arr = []
    stack = data
    while (stack.length) {
      let item = stack.shift()
      let children = item.children
      arr.push(item.id)
      if (children) {
        for (let i = 0; i < children.length; i++) {
          stack.push(children[i])
        }
      }
    }
    return arr
  }