vue利用递归改造tree数据
·
1.数据结构格式
arr: [
{ id: 1, icon: "user", name: "张安", hidden: true },
{
id: 2,
icon: null,
name: "张三",
hidden: false,
children: [
{
id: 4,
name: "张三2",
icon: "",
type: 0,
level: 1,
meta:['admin']
},
{
id: 5,
name: "张三3",
icon: "",
type: 0,
level: 2,
meta:['admin']
},
],
},
],
改造数据格式
arr: [
{ index: 1, name: "张安", },
{
index: 2,
name: "张三",
children: [
{
index: 4,
name: "张三2",
meta:['admin']
},
{
index: 5,
name: "张三3",
meta:['admin']
},
],
},
],
2.定义递归函数
/*
data-----数据源
*/
setData(data){
data.forEach((v,index)=>{
// 判断对象中是否有children
if(v.children && v.children.length>0){
data[index]={
index:v.id,
name:v.name,
children:v.children,
}
// 对children项递归
this.setData(v.children)
}else{
// 没有children直接赋值
data[index]={
index:v.id,
name:v.name,
meta:v.meta ? v.meta : null
}
}
})
return data
}
3.调用
let arr= this.setData(this.arr)
console.log(arr);
结果展示

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)