使用2参数过滤器从对象中删除多个对象(角度)

时间:2019-05-14 20:15:49

标签: angular filter

如何通过基于多个值进行过滤来从数组中删除对象?

下面是我的代码:

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

这似乎删除了具有名称或产品匹配项,而不是具有名称和产品匹配项的对象(即!==似乎使&&以||的形式出现)

我希望它仅删除名称和&产品都匹配的对象

1 个答案:

答案 0 :(得分:1)

!(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,似乎整个代码都不正确