Javascript 当另一个数组中的某个对象具有某些属性值时,如何从该数组中删除该对象?
我需要一个函数来删除数组中的整个对象:Javascript 当另一个数组中的某个对象具有某些属性值时,如何从该数组中删除该对象?,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,我需要一个函数来删除数组中的整个对象: let selectedItem = { LinkID: 1 }; let sindecs = [ { estado: { id: 2, siga: "AL", nome: "Alagoas" }, link: [ { LinkID: 1, Link: "link1", Active: false }, { LinkID: 2, Link: "link 2", Active: false } ],
let selectedItem = { LinkID: 1 };
let sindecs = [
{
estado: { id: 2, siga: "AL", nome: "Alagoas" },
link: [
{ LinkID: 1, Link: "link1", Active: false },
{ LinkID: 2, Link: "link 2", Active: false }
],
SindecID: 3
},
{
estado: { id: 19, siga: "RJ", nome: "Rio de Janeiro" },
link: [{ LinkID: 3, Link: "rio", Active: false }],
SindecID: 4
}
];
函数removeLinkObj(sindecs,selectedItem){
}
移除InkObj(sindecs,selectedItem)
结果应该是:
let sindecs = [
{
estado: { id: 2, siga: "AL", nome: "Alagoas" },
link: [
//REMOVED LINE
{ LinkID: 2, Link: "link 2", Active: false }
],
SindecID: 3
},
{
estado: { id: 19, siga: "RJ", nome: "Rio de Janeiro" },
link: [{ LinkID: 3, Link: "rio", Active: false }],
SindecID: 4
}
];
谢谢你,兄弟!我测试了您的代码,我将LinkId更改为LinkId,然后它工作得非常好!非常感谢你!伟大的快乐编码。
let sindecs = [
{
estado: { id: 2, siga: "AL", nome: "Alagoas" },
link: [
//REMOVED LINE
{ LinkID: 2, Link: "link 2", Active: false }
],
SindecID: 3
},
{
estado: { id: 19, siga: "RJ", nome: "Rio de Janeiro" },
link: [{ LinkID: 3, Link: "rio", Active: false }],
SindecID: 4
}
];
function removeLinkObj(sindecs, selectedItem){
return sindecs.map((row) => {
row.link = row.link.filter(item => item.LinkID !== selectedItem.LinkID);
return row;
});
}