我这有样的一个数据对象
[
{
name: '将军',
checked: false,
vt:false,
child: [
{
name: '师长1',
checked: true,
vt:false,
child: [
{name: '营长1', checked: false},
{name: '营长2', checked: true},
]
},
{
name: '师长2',
checked: true,
vt:false,
child: [
{name: '营长3', checked: true},
{name: '营长4', checked: true},
]
},
{
name: '师长3',
checked: true,
vt:false,
child: [
{name: '营长5', checked: false},
{name: '营长6', checked: false},
]
},
]
}
]
我想把他变成下面这样
[
{
name: '将军',
checked: false,
vt: true,
child: [
{
name: '师长1',
checked: false,
vt: true,
child: [
{name: '营长1', checked: false},
{name: '营长2', checked: true},
]
},
{
name: '师长2',
checked: true,
vt: false
child: [
{name: '营长3', checked: true},
{name: '营长4', checked: true},
]
},
{
name: '师长3',
checked: false,
vt:false,
child: [
{name: '营长5', checked: false},
{name: '营长6', checked: false},
]
},
]
}
]
就是递归数据对象到最后一级,如果他的最后一级营长级别
checked都为true
,
vt为false
他的上一级父级师长
的checked就为true
,vt为false
师长
级别的父级(第一级)将军
又要看最后一级的营长是否为全选中状态
如果是全选中状态checked
才能为true 不然只能为false
vt为ture
但是如果最后一级的营长
都是false
他的父级checked和vt都为false
这种数据结构要怎么改变他的值?
以此类推更多层级的时候也是一样
在此先感谢了
vt 代表下面的横杠 checked代表下面的打勾
效果图如下
运行两位 @PPxs199 Mc1296 的代码结果在三级上可以 但是在四级下却成这样的了
我期望的结果是
我不知道这样两位大神是否明白
就是如果最后一级是没选中的他的父级是没有任何状态的vt
为false,checked
为false
如果有其中一个选中他的父级vt
为true,checked
为false
如果最后一级全选中他的父级vt
为false,checked
为true
就是每个层级都要看他最后一级的checked
来决定当前状态
这是四级的data,
我觉得难就难在从最后一级来决定他的所有父级状态
{
"name":"将军",
"checked": false,
"vt": true,
"child":[
{
"name":"师长",
"checked":false,
"vt": false,
"child":[
{
"name":"营长",
"checked":false,
"vt": false,
"child":[
{
"name":"连长1",
"checked": false
},
{
"name":"连长2",
"checked": true
},
]
}
]
},
{
"name":"师长2",
"checked":false,
"vt": true,
"child":[
{
"name":"营长2",
"checked":false,
"vt": true,
"child":[
{
"name":"连长1",
"checked": false
},
{
"name":"连长2",
"checked": false
},
]
}
]
},
{
"name":"师长3",
"checked":true,
"vt": false,
"child":[
{
"name":"营长2",
"checked":true,
"vt": false,
"child":[
{
"name":"连长1",
"checked": true
},
{
"name":"连长2",
"checked": true
},
]
}
]
},
]
}