我有一个树 struct array.我需要能够使用索引路径找到对象并更新切换布尔值.我可以使用索引路径更新切换,但如果向树中添加更多级别的 node ,则需要更新此逻辑.如何才能使其成为泛型,以便即使treeData发生更改,我的代码仍能正常工作? 如果我可以将所有其他 node 设置为假(如果它不在其中一个索引路径中),那就太好了.
treeData = [{
name: 'Infiniti',
toggle: false,
children: [{
name: 'G50',
toggle: false,
children: [{
name: 'Pure AWD',
toggle: false
},
{
name: 'Luxe',
toggle: false
},
],
},
{
name: 'QX50',
toggle: false,
children: [{
name: 'Pure AWD',
toggle: false
},
{
name: 'Luxe',
toggle: false
},
],
},
],
},
{
name: 'BMW',
toggle: false,
children: [{
name: '2 Series',
toggle: false,
children: [{
name: 'Coupé',
toggle: false
},
{
name: 'Gran Coupé',
toggle: false
},
],
},
{
name: '3 Series',
toggle: false,
children: [{
name: 'Sedan',
toggle: false
},
{
name: 'PHEV',
toggle: false
},
],
},
],
},
];
indexPathArray = ["0/0/1", "1/0/0"]
for (const index of indexPathArray) {
const indexArray = index.split('/')
for (let i = 0; i < indexArray.length; i++) {
if (i === 0) {
treeData[indexArray[0]].toggle = true;
}
if (i === 1) {
treeData[indexArray[0]].children[indexArray[1]].toggle = true;
}
if (i === 2) {
treeData[indexArray[0]].children[indexArray[1]].children[indexArray[2]].toggle = true;
}
}
}
console.log(treeData);