js 无限层级树状图转扁平化数据

js yekong

最近在处理地图数据,由于数据量太大,层级太深,需要将多层级数据转为扁平化的一层级数据。以便于对数据的二次处理。
wanjunshijiecom20220708atFHab

方法

function treeToArray (tree) {
  return tree.reduce((res, item) => {
    const {
      children,
      ...i
    } = item
    return res.concat(i, children && children.length ? treeToArray(children) : [])
  }, [])
}

数据处理

var data = treeToArray(cityData)
var list = []
data.forEach((type) => {
  if (type.level != 'street') {
    var info = [{
      name: type.name,
      center: type.center
    }]
    list.push(info)
  }
})

扁平化方法来源

方法来源

喜欢