1 回答
TA贡献1872条经验 获得超3个赞
写出来一个方法,就这组数据来看是对的。
let data = [
{
checked: false,
children: [
{
checked: true
},
{
checked: false,
children: [
{
checked: true
},
{
checked: true
}
]
}
]
}
];
// init checked status
function getNodes(data) {
if (data.children) {
let checkedLength = 0;
data.children.forEach(node => {
if (node.children) {
node = getNodes(node);
}
if (node.checked) checkedLength++;
});
if (checkedLength >= data.children.length) data.checked = true;
return data;
} else {
return data;
}
}
data = data.map(node => node = getNodes(node));
console.log(JSON.stringify(data));
添加回答
举报