当前位置: 首页 > 知识库问答 >
问题:

通过比较2个阵列,Ionic 3管道到过滤器列表

袁运锋
2023-03-14

我需要帮助,以编写一个过滤管道组件,将过滤和显示只包含选定的搜索数组字的职位。找到了一种使用1个搜索值返回的方法,但我需要它在一个数组中返回多个搜索结果

jobCategory=['admin','clerk','driver','labour','helper']
selectedCategory=['driver','helper']

HTML:

<ion-item *ngFor="let posting of (postingList | postingFilter:'jobCategory':selectedCategory)"  >

管道:

export class PostingFilterPipe implements PipeTransform { 
transform(items: any[], field : string, value : string): any[] {  
  if (!items) return [];
  if (!value || value.length == 0) return items;
  return items.filter(it => {
    for (let index = 0; index < value.length; index++) {
      const element = value[index]; ***STUCK***
    }

  });
}

}

共有2个答案

沈实
2023-03-14

我想知道在这种情况下是否需要字段参数/参数。我还没有测试过这个,但我会尝试将所选类别的数组作为参数传递。然后尝试使用 Array.include() 仅返回已选择的作业类别(位于所选类别数组中)。

希望对:)有所帮助如果这不是你的意思,请告诉我。

jobCategory=['admin','clerk','driver','labour','helper']
selectedCategory=['driver','helper']

管道:

export class PostingFilterPipe implements PipeTransform { 
  // items => array to filter through
  // field => field name (not needed??)
  // array of selected categories
  transform(items: any[], field : string, selectedValues: string[]): any[] {  
    if (!items) return [];
    if (!value || value.length == 0) return items;

    return items.filter(item => {
      return value.includes(item);
    });
  }
}

HTML:

<ion-item *ngFor="let posting of (postingList | postingFilter:selectedCategory)"  >
班凌
2023-03-14

你可以尝试这样的事情:

export class PostingFilterPipe implements PipeTransform { 
  transform(items, field : string, value): any[] {  
    if (!items) return [];
    if (!value || value.length == 0) return items;
    return items.filter(it => value.filter(val => it[field].includes(val)).length > 0)
  });
}
 类似资料:
  • 第一次来这里,所以我希望这是有意义的! 我有两个对象数组,比如l1和l2,我想在这两个列表之间进行比较,并在l3中得到一个不匹配的值。用户类包含2个字符串: 比如,l1包含:Java、JSF、JAXR、foo l2包含:JSF、JAXR 我可以对匹配的值进行比较,但不能对不匹配的值进行比较。这种逻辑似乎有缺陷。有什么帮助吗? 对于匹配值: 但是,对于不匹配,当我说不等于时,我得到的不是唯一的值,而

  • 因此,我有两个大小相等的2D numpy数组,都是在两个不同的曲面上使用方法获得的。 数组中的每个值也是形式的数组(所以我基本上有一个带有1D元素的2D数组)。 基本上,我想根据条件对两者进行比较: 有没有更有效的方法可以做到这一点,而无需简单地迭代任何一个数组,如下所示?

  • 问题内容: 我正在使用aurelia,并想在视图中而不是视图模型中过滤集合(数组)。 我正在尝试使用以下语法: 而且我在浏览器控制台中遇到以下错误: 。 在angularJS中,这是可能的,如下所示: 奥雷利亚是否也可能有类似的事情? 我也很想知道如何在aurelia中过滤集合/数组(类似于)。我试图以类似的方式使用过滤器功能,但是它也无法正常工作,并且出现了类似的错误。 问题答案: 有点尴尬。但

  • 我在考虑用更现代的东西取代一些旧的比较器代码。 我知道Java 8的Comparator方法,所以上面的方法可以变成: 但是,我需要为每次比较写出和,这有点烦人。理想情况下,我只需输入一个列表或多个lambda。 比如: 下面是我得到的最接近的结果,其中一些注释部分指出了由于泛型不匹配而无效的内容。症结似乎在于我想传入多个

  • 问题内容: 我想做类似的事情: Python的标准库中是否有类似行为? 我知道在这里自己动手很容易,但是我正在寻找一种更标准的方法。 问题答案: 您可以使用filter方法: 或列表理解: 要查找单个元素,可以尝试: 尽管如果没有匹配项将引发异常,因此您可能希望将其包装在try / catch中。方括号()使之成为生成器表达式,而不是列表理解。 就我个人而言,尽管我只是使用常规的过滤器/理解并采用