【问题标题】:Filter() in Angular2Angular2中的过滤器()
【发布时间】:2021-03-31 21:36:38
【问题描述】:

我有

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'}]

我该怎么办?

【问题讨论】:

  • 产品代码没有key?
  • 'code' 是关键

标签: angular filter filtering


【解决方案1】:

我想你需要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.log(productC);

【讨论】:

    【解决方案2】:

    您可以使用differenceBylodash 来做到这一点。

    import * as _ from 'lodash-es';
    
    yourFunc() {
          :
        const productsC = _.differenceBy(productsA, productsB, 'code');
          :
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-18
      • 2017-05-31
      • 2017-01-13
      • 2017-05-30
      • 2016-11-19
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多