Javascript 如何删除嵌套的JSON元素?

Javascript 如何删除嵌套的JSON元素?,javascript,json,typescript,Javascript,Json,Typescript,我的JSON看起来像这样 var data = [{ "ID" : 3, "discRec" : "Some sample record", "Tasks" : [{ "ID" : 7, "discParcel" :

我的JSON看起来像这样

var data =  [{
        "ID"                  : 3,
        "discRec"             : "Some sample record",
        "Tasks"               : [{
                                "ID"          : 7,
                                "discParcel"  : ["string1", "string2"]
                                }]
        }, 
        {
        "ID"                  : 4,
        "discRec"             : "Some sample record 2",
        "Tasks"               : [{
                                "ID"          : 8,
                                "discParcel"  : ["string3", "string4"]
                                }]
        }];

现在,我想删除'discParcel'的第一个元素,它的ID attr为'8',其父ID attr为'4'。如何在angular 2中做到这一点。任何人都可以帮忙。

假设数据是有效的JSON,您可以像在普通javascript中一样:

let arr = JSON.parse(data);
arr.forEach(e => {
  if(e.ID  === 4){
    Tasks.forEach(el => {
      if(el === 8){
        discParcel.shift();
      }
    })  
  }
})

这在JS或JSON中不是有效的语法。。。数据是数组吗?这与angular2有什么关系?这是一个javascript问题。我想删除'discParcel'的第一个元素,它的ID attr为'8',其父ID attr为'4'。如何在angular 2中做到这一点。我尝试了此数据[]。ID['3'].任务[]。ID['8'].discParcel[0],您能帮忙吗。但是它抛出了一个错误。现在请不要忘记我为什么总是忘记
find()
有多棒。不客气。此解决方案假定有一个ID为4的记录,并且它有一个ID为8的任务。如果不能保证这是一种情况,则必须为临时变量赋值,并在三个操作之间检查
undefined
data
    .find(record => record.ID === 4)
    .Tasks.find(task => task.ID === 8)
    .discParcel.shift();