如何通过基于多个值进行过滤从数组中删除对象?
以下是我的代码:
removeArray.filter(function(ra) {
fullArray.controls = fullArray.controls.filter(function(sa) {
return sa.value.name!== ra.value.name && sa.value.product !== ra.value.product;
});
});
问题是这一行:
sa.value.name!== ra.value.name && sa.value.product !== ra.value.product
这似乎删除了具有名称或产品匹配的对象,而不是具有名称和产品匹配(即!==似乎使& amp; amp; amp; amp; amp; amp; amp; amp; amp;
我希望它仅删除名称& amp;产品匹配
!(sa.value.name=== ra.value.name && sa.value.product === ra.value.product)
或
sa.value.name !== ra.value.name || sa.value.product !== ra.value.product
还将功能更改为箭头函数
removeArray.filter((ra) => {
fullArray.controls = fullArray.controls.filter((sa) =>
sa.value.name!== ra.value.name || sa.value.product !== ra.value.product
);
});
作为注意,代码是臭味的,因为您一遍又一遍地设置FullArray.controls,因此整个代码似乎不正确