TypeScript:查找并更新嵌套Json结构中的元素
我有一个嵌套的json结构,我想根据id找到一个元素,这样我就可以访问并更改他的数量:TypeScript:查找并更新嵌套Json结构中的元素,json,typescript,Json,Typescript,我有一个嵌套的json结构,我想根据id找到一个元素,这样我就可以访问并更改他的数量: [ { 'title': "title 12" 'id' : 12 'level' : 1 'quantity' : 3 'childrens': [ { 'title': "title 121" 'id' : 121 'quant
[
{
'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,我不得不玩索引,但我被卡住了。我将设法找到一种方法来做这件事