Удалить несколько объектов из объекта, используя 2 параметра фильтра (угловой) - PullRequest
0 голосов
/ 14 мая 2019

Как удалить объекты из массива путем фильтрации по нескольким значениям?

Ниже мой код:

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 Ответ

1 голос
/ 14 мая 2019
!(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 снова и снова, таккажется, что весь код не является правильным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...