首页 > 解决方案 > 在由两个数据库字段组成的表列中查找值

问题描述

我有一个在 Angular 中按以下方式组成的表格列:

        <tr *ngFor="let activity of activitiesTable.data">
              <td data-cy="employee-cell">
                   {{ activity.employee.lastName }} {{ activity.employee.firstName }}
              </td>

我的研究是这样实施的:

export function activityEmployeesFilterFn(
  entities: ActivityEmployee[],
  { query }: { query: string }
): ActivityEmployee[] {
  return query
    ? entities.filter(
        (e) =>
          -1 < e.lastName.toLowerCase().indexOf(query?.toLowerCase()) ||
          -1 < e.firstName.toLowerCase().indexOf(query?.toLowerCase())
      )
    : entities;
}

不幸的是,此搜索仅适用于姓名和姓氏。如果我尝试写“John Wessley”,它找不到我的任何名字,因为他正在寻找 John 或 Wessley。我该如何解决?

标签: javascriptangularsearch

解决方案


您可以颠倒您的比较逻辑,因此您将搜索用名字或姓氏输入的内容。

-1 < query?.toLowerCase().indexOf(e.lastName.toLowerCase()) ||
-1 < query?.toLowerCase().indexOf(e.firstName.toLowerCase())

推荐阅读