// 处理树状结构
function getTree(params = [], result = [], key = '') {
if (Array.isArray(params) && params.length) {
params.forEach(item => {
// 每次开启新的一轮循环,拷贝一份副本(key),因为副本会用于当前轮的其它兄弟,所以你不能改变副本(即不能改变key的值)
let currentkey = key
currentkey += item.name
if (item.children) {
getTree(item.children, result, currentkey)
} else {
// 无children说明市最后一层,保留最后一层的节点数据
result.push({
[currentkey]: item.id
})
}
})
}
}
const cloumns = [
{
name: '江西省',
children: [
{
name: '赣州市',
children: [
{
name: '于都县',
id: 'yudu101'
},
{
name: '瑞金',
id: 'ruijing101'
}
]
},
{
name: '南昌市',
children: [
{
name: '清山湖区',
id: 'qhu101'
},
{
name: '浔阳区',
id: 'baobao101'
}
]
}
]
},
{
name: '广东省',
children: [
{
name: '深圳市',
children: [
{
name: '宝安区',
id: 'baoan101'
},
{
name: '福田区',
id: 'futian101'
}
]
}
]
}
]
let result = []
getTree(cloumns, result)
console.log(result)
js处理复杂树状结构数据 2,拼接name为key
最新推荐文章于 2023-03-03 17:34:58 发布