工作中常常使用到tree数据
需要对tree数据进行处理 遍历添加属性
我们来模拟一个后台返回数据
如下
``` let arr = [{
children: [{
children: [],
isOrg: true
}],
isOrg: true
}, {
children: [{
children: [{
children: [],
isOrg: true
}, {
children: null,
isOrg: false
}],
isOrg: true
}],
isOrg: true
}, {
children: [{
children: [{
children: null,
isOrg: false
}, {
children: null,
isOrg: false
}],
isOrg: true
}],
isOrg: true
}]
function addAttribute(data) { // tree结构递归添加属性
for (var i = 0; i < data.length; i++) {
//区分父节点和带isOrg=false的叶子节点
if (data[i].children == null && !data[i].isOrg) {
data[i].children = []
} //给isOrg=true 的叶子节点加上 showInput属性
if (data[i].children.length == 0 && data[i].isOrg) {
data[i].showInput = false
}
if (data[i].children && data[i].children.length > 0) {
this.addAttribute(data[i].children)
}
}
return data
}
let a = addAttribute(arr)
console.log(a);