最近在处理地图数据,由于数据量太大,层级太深,需要将多层级数据转为扁平化的一层级数据。以便于对数据的二次处理。
方法
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)
}
})