Фильтр() в Angular2

У меня есть

Product: {code: string, description: string}
productsA: Product[]
productsB: Product[]

Я хочу получить productsC: Product[], который содержит все продукты productsA, у которых есть «код», отличный от кодов продуктов productsB

Пример:

  productsA = [{'c1', 'des1'}, {'c2', 'des2'}, {'c3', 'des3'}]
  productsB = [{'c1', 'des4'}]
  I want productsC = [{'c2', 'des2'}, {'c3', 'des3'}]

Как я могу сделать?

нет ключа для кода продукта?

saivishnu tammineni 22.12.2020 07:57

"код" является ключом

doinel 22.12.2020 08:22
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
2
80
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете сделать это с помощью differenceBy из lodash.

import * as _ from 'lodash-es';

yourFunc() {
      :
    const productsC = _.differenceBy(productsA, productsB, 'code');
      :
}
Ответ принят как подходящий

Я думаю, вам нужны все продукты из productsA, кроме того, что включает productsB?

Вот тогда.

const productA = [{code: 'c1', description: 'desc1'}, {code: 'c2', description: 'desc2'}, {code: 'c3', description: 'desc3'}];
const productB = [{code: 'c1', description: 'desc1'}];
const productC = [];

productA.forEach(prodA => {
  productB.forEach(prodB => {
    if (prodA.code != prodB.code) {
      productC.push(prodA);
    }    
  });
});

console.info(productC);

Другие вопросы по теме