gpt4 book ai didi

javascript - 从具有嵌套数组的对象中删除项目

转载 作者:行者123 更新时间:2023-12-03 00:08:38 25 4
gpt4 key购买 nike

嗨,我有这样的对象

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.
}

我正在尝试类似于此答案中给出的解决方案,但不起作用

JavaScript remove item from nested Array

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

最佳答案

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

我认为应该先删除locadd,然后再删除loc

this.obj.loc[i].locadd.splice(j,1)
this.obj.loc.splice(i, 1)

更新

我做了一个片段。看起来很有效。

var obj = {
loc: [{
locadd: [{
st: '1',
zip: '1',
},{
st: '2',
zip: '2',
},{
st: '3',
zip: '3',
}]
}]
};

function 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.
}

console.log(this.obj.loc)
deleterow(0, 1)
console.log(this.obj.loc)

关于javascript - 从具有嵌套数组的对象中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54848384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com