【发布时间】:2023-01-25 21:23:11
【问题描述】:
我有一组对象,我想在每个嵌套的子级别更新值我无法找到如何实现它
输入
let data = [{
label: 'classA',
value: 40,
children: [{
label: 'classA_sectioA',
value: 12,
children: [{
label: 'classA_sectioA_student1',
value: 7,
},
{
label: 'classA_sectioA_student2',
value: 3,
},
{
label: 'classA_sectioA_student3',
value: 2,
}
]
},
{
label: 'classA_sectioB',
value: 15,
children: [{
label: 'classA_sectioB_student1',
value: 7,
},
{
label: 'classA_sectioB_student2',
value: 3,
},
{
label: 'classA_sectioB_student3',
value: 5,
}
],
},
{
label: 'classA_sectioC',
value: 13,
children: [{
label: 'classA_sectioC_student1',
value: 6,
},
{
label: 'classA_sectioC_student2',
value: 3,
},
{
label: 'classA_sectioC_student3',
value: 4,
}
]
}
]
},
{
label: 'classB',
value: 60,
children: [{
label: 'classB_sectioA',
value: 12,
children: [{
label: 'classB_sectioA_student1',
value: 6,
},
{
label: 'classB_sectioA_student2',
value: 5,
},
{
label: 'classB_sectioA_student3',
value: 1,
}
]
},
{
label: 'classB_sectioB',
value: 18,
children: [{
label: 'classB_sectioB_student1',
value: 3,
},
{
label: 'classB_sectioB_student2',
value: 13,
},
{
label: 'classB_sectioB_student3',
value: 2,
}
],
},
{
label: 'classB_sectioC',
value: 30,
children: [{
label: 'classB_sectioC_student1',
value: 1,
},
{
label: 'classB_sectioC_student2',
value: 9,
children: [{
label: 'shan',
value: 4,
},
{
label: 'sk',
value: 2,
},
{
label: 'tk',
value: 2,
}
]
},
{
label: 'classB_sectioC_student3',
value: 20,
}
]
}
]
},
{
label: 'classC',
value: 90,
children: [{
label: 'classC_sectioA',
value: 30,
children: [{
label: 'classC_sectioA_student1',
value: 11,
},
{
label: 'classC_sectioA_student2',
value: 12,
},
{
label: 'classC_sectioA_student3',
value: 7,
}
]
},
{
label: 'classC_sectioB',
value: 20,
children: [{
label: 'classC_sectioB_student1',
value: 1,
},
{
label: 'classC_sectioB_student2',
value: 16,
},
{
label: 'classC_sectioB_student3',
value: 13,
}
],
},
{
label: 'classC_sectioC',
value: 40,
children: [{
label: 'classC_sectioC_student1',
value: 21,
children: [{
label: 'shanu',
value: 22,
>
label: 'sk',
value: 18,
},
{
label: 'tk',
value: 11,
}
]
},
{
label: 'classC_sectioC_student2',
value: 12,
},
{
label: 'classC_sectioC_student3',
value: 7,
}
]
}
]
}
]
异常输出
let data = [{
label: 'classA',
value: 40,
Radius: 20
children: [{
label: 'classA_sectioA',
value: 12,
Radius: 40
children: [{
label: 'classA_sectioA_student1',
value: 7,
},
{
label: 'classA_sectioA_student2',
value: 3,
},
{
label: 'classA_sectioA_student3',
value: 2,
}
]
},
{
label: 'classA_sectioB',
value: 15,
Radius: 40
children: [{
label: 'classA_sectioB_student1',
value: 7,
Radius: 60
},
{
label: 'classA_sectioB_student2',
value: 3,
Radius: 60
},
{
label: 'classA_sectioB_student3',
value: 5,
Radius: 60
}
],
},
{
label: 'classA_sectioC',
value: 13,
Radius: 40
children: [{
label: 'classA_sectioC_student1',
value: 6,
Radius: 60
},
{
label: 'classA_sectioC_student2',
value: 3,
Radius: 60
},
{
label: 'classA_sectioC_student3',
value: 4,
Radius: 60
}
]
}
]
},
{
label: 'classB',
value: 60,
Radius: 20
children: [{
label: 'classB_sectioA',
value: 12,
Radius: 40
children: [{
label: 'classB_sectioA_student1',
value: 6,
Radius: 60
},
{
label: 'classB_sectioA_student2',
value: 5,
Radius: 60
},
{
label: 'classB_sectioA_student3',
value: 1,
Radius: 60
}
]
},
{
label: 'classB_sectioB',
value: 18,
Radius: 40
children: [{
label: 'classB_sectioB_student1',
value: 3,
Radius: 60
},
{
label: 'classB_sectioB_student2',
Radius: 60
value: 13,
},
{
label: 'classB_sectioB_student3',
value: 2,
Radius: 60
}
],
},
{
label: 'classB_sectioC',
value: 30,
Radius: 40
children: [{
label: 'classB_sectioC_student1',
value: 1,
Radius: 60
},
{
label: 'classB_sectioC_student2',
Radius: 60
value: 9,
children: [{
label: 'shan',
value: 4,
Radius: 80
},
{
label: 'sk',
value: 2,
Radius: 80
},
{
label: 'tk',
value: 2,
Radius: 80
}
]
},
{
label: 'classB_sectioC_student3',
value: 20,
Radius: 60
}
]
}
]
},
{
label: 'classC',
value: 90,
Radius: 20
children: [{
label: 'classC_sectioA',
value: 30,
Radius: 40
children: [{
label: 'classC_sectioA_student1',
value: 11,
Radius: 60
},
{
label: 'classC_sectioA_student2',
value: 12,
Radius: 60
},
{
label: 'classC_sectioA_student3',
value: 7,
Radius: 60
}
]
},
{
label: 'classC_sectioB',
value: 20,
Radius: 40
children: [{
label: 'classC_sectioB_student1',
value: 1,
Radius: 60
},
{
label: 'classC_sectioB_student2',
value: 16,
Radius: 60
},
{
label: 'classC_sectioB_student3',
value: 13,
Radius: 60
}
],
},
{
label: 'classC_sectioC',
value: 40,
Radius: 40
children: [{
label: 'classC_sectioC_student1',
Radius: 60
value: 21,
children: [{
label: 'shanu',
value: 22,
Radius: 80
},
{
label: 'sk',
value: 18,
Radius: 80
},
{
label: 'tk',
value: 11,
Radius: 80
}
]
},
{
label: 'classC_sectioC_student2',
value: 12,
Radius: 60
},
{
label: 'classC_sectioC_student3',
value: 7,
Radius: 60
}
]
}
]
}
]
//a new property radius added at every level and it's multiply by 20 with there levels of depth
我尝试用递归函数更新对象,但在某个级别之后我不知道如何递归地执行此操作,因为我必须在每个级别上保持索引,这对我来说是痛点
【问题讨论】:
-
你有一些更紧凑的数据吗?
-
上面给出的数据集是否有任何问题
-
我有数据数组,只想在每个嵌套级别更新或添加半径
标签: javascript