Javascript 从具有嵌套数组的对象中删除项

Javascript 从具有嵌套数组的对象中删除项,javascript,angular,typescript,multidimensional-array,Javascript,Angular,Typescript,Multidimensional Array,嗨,我有这样的东西 var obj= { _id: string; name: string; loc: [{ locname: string; locId: string; locadd: [{ st: string; zip: string; }] }] } 在angular 2中使用typescript,我想删除一行 delete

嗨,我有这样的东西

var obj= {
     _id: string;
    name: string;
    loc: [{
         locname: string;
         locId: string;
         locadd: [{
             st: string;
             zip: string;
         }]
     }]
}
在angular 2中使用typescript,我想删除一行

deleterow(i, j) {
  // i is index of loc 
  // j is index of locadd
  this.obj.loc.splice(i, 1) //works fine 
  this.obj.loc[i].locadd.splice(j, 1) //doesn't work. I don't get any error just 
  // row is not removed.
}
我正在尝试类似于此答案中给出的解决方案,但不起作用

请告诉我如何从locadd中删除A项
谢谢

您删除了
i
th loc项。然后,您引用了
i
th loc,它是已删除loc项的下一个

我认为在删除
loc
之前应该先删除
locadd

this.obj.loc[i].locadd.splice(j,1)
此obj定位拼接(i,1)
更新

我做了一个片段。它似乎起作用了

var obj={
loc:[{
地址:[{
st:'1',
zip:'1',
},{
st:'2',
zip:'2',
},{
st:'3',
zip:'3',
}]
}]
};
函数deleterow(i,j){
//我是loc的索引
//j是locadd的索引
//这个.obj.loc.splice(i,1)//工作正常
this.obj.loc[i].locadd.splice(j,1)//不起作用。我没有得到任何错误
//行未被删除。
}
console.log(this.obj.loc)
删除行(0,1)

console.log(this.obj.loc)
什么是
j
<代码>“locadd”属性具有单个值
。拼接(0,1)
。给定问题对象的
“locadd”
值,传递给
的第一个参数的任何大于
0
的值。slice()
将与数组中的任何索引都不匹配。locadd是数组。j是我要删除的locadd的索引。
“locadd”
是否包含多个元素?是的,它包含多个元素您可以在问题中包含完整对象和预期结果,并创建一个stacksnippets来演示问题吗?看,它不工作,因为我只是在尝试这个。obj.loc[I].locadd.splice(j,1)另一个这个。obj.loc.splice(I,1)只是在第一次显示它工作正常,但嵌套它不工作。我正在尝试编辑被剪断的代码,但不知道如何编辑。能否在locadd[0]上添加第二个元素,然后删除该元素。因为我相信这就是它不起作用的地方。Thanks@J.Davidson你能用你的代码更新你的文章吗?谢谢你的代码片段。使用它,我能够找出问题的j值,一旦纠正它的工作良好。谢谢