TypeScript:查找并更新嵌套Json结构中的元素

TypeScript:查找并更新嵌套Json结构中的元素,json,typescript,Json,Typescript,我有一个嵌套的json结构,我想根据id找到一个元素,这样我就可以访问并更改他的数量: [ { 'title': "title 12" 'id' : 12 'level' : 1 'quantity' : 3 'childrens': [ { 'title': "title 121" 'id' : 121 'quant

我有一个嵌套的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。 要手动访问ID1211,我可以这样做

this.booksArray.find(x => x.childrens[0].childrens[0].id == 1211).children[0].children[0].quantity= 12

但是如何自动完成呢?这意味着,如果我的id是3级,向下看孩子的2级,如果我的级别是4级,向下看孩子的3级,依此类推。

您可以创建一个简单的递归函数:

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));
  }
}
这应该可以让你走了。

它不起作用。对于id=12(第一级),我必须执行if(项[0]。id==id)才能使其工作。至于id=1211,我不得不玩索引,但我被卡住了。我将设法找到一种方法来做这件事