我有一个嵌套的json结构,我想根据id查找一个元素,以便我可以访问和更改其数量:
[
{
'title': "title 12"
'id' : 12
'level' : 1
'quantity' : 3
'childrens': [
{
'title': "title 121"
'id' : 121
'quantity' : 5
'level' : 2
'childrens':[
{
'title': "title 1211"
'id' : 1211
'quantity' : 8
'level' : 3
...
假设我要更新ID 1211的数量,并给出12而不是8。 要手动访问ID 1211,我可以这样做
this.booksArray.find(x => x.childrens[0].childrens[0].id == 1211).children[0].children[0].quantity= 12
但是如何自动执行呢?这意味着,如果我的ID为3级,则将孩子的2级向下看,如果我的ID为4级,将孩子的3级向下看,依此类推。
答案 0 :(得分:0)
您可以创建一个简单的递归函数:
function setValue(item: any, id: string, quantity: number){
if (item.id === id) {
item.quantity = quantity;
}
else if (item.children) {
item.children.forEach(child => setValue(child, id, quantity));
}
}
这应该可以帮助您。