【问题标题】:Remove multiple object from object using 2 parameter filter (Angular)使用 2 参数过滤器 (Angular) 从对象中删除多个对象
【发布时间】:2019-05-15 04:32:36
【问题描述】:

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

下面是我的代码:

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

这似乎删除了名称或产品匹配的对象,而不是名称和产品匹配的对象(即,!== 似乎使 && 作为 || 工作)

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

【问题讨论】:

  • 您的期望是什么?
  • 我希望它删除名称 && 产品匹配的对象。即,如果我使用 === 而不是 !== ,则与过滤器相同

标签: angular filter


【解决方案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,所以似乎整个代码都不正确

【讨论】:

    猜你喜欢
    • 2021-11-08
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多