支持小写并包含搜索值的管道

时间:2018-11-06 12:09:41

标签: javascript angular

我有这个搜索管道

import { Pipe, PipeTransform, Injectable } from '@angular/core';

@Pipe({
  name: 'filter2'
})
@Injectable()
export class FilterPipe implements PipeTransform {
  transform(items: any[], field: string, value: string[]): any[] {
    if (!items) {
      return [];
    }
    if (!field || !value || value.length <= 0) {
      return items;
    }
    return items.filter(singleItem => {
      return (singleItem != null && singleItem[field] != null && singleItem[field] != undefined && value.includes(singleItem[field].toLowerCase()) && value.indexOf(singleItem[field].toLowerCase()) >= 0);
    });
  }
}

问题在于它无法正常工作。例如,如果我在表JOHN中有此值,则如果我通过john搜索,它将找不到(区分大小写)。

此外,如果我在“ JO”之后搜索,它将找不到该值。我尝试了类似value.includes(singleItem[field].toLowerCase())的方法,但仍然找不到我的价值。

如何修改我的代码才能正常工作?谢谢您的时间!

0 个答案:

没有答案
相关问题