Ошибка типа: obj [ключ] .include не является функцией - PullRequest
0 голосов
/ 05 сентября 2018

Это запрос (Обновлено):

this._service.getPeople().subscribe((response) => {
 this.people = response;
});

Это метод:

filterIt(arr: any, searchKey: any) {
        return arr.filter((obj: any) => {
          return Object.keys(obj).some((key) => {
            return obj[key].includes(searchKey);
          });
        });
      }

В результате я хочу отфильтровать строки таблицы, но получаю:

Ошибка типа: obj [ключ] .include не является функцией

Необходимо знать, что этот код отлично работает с массивом объектов, жестко закодированных, но когда я получаю данные из бэкэнда с помощью службы (http.get), служба работает нормально и возвращает JSON с данными, но я Я все еще получаю ошибку. Любая помощь будет оценена!

Я работаю с Typescript 2.7.2, Angular 6 и MDBootstrap 6.2.2 (Angular).

1 Ответ

0 голосов
/ 05 сентября 2018

Я только что нашел ответ сам по себе, дело в том, что у меня было одно из свойств, равное null, это то, что увеличивало ошибку, поэтому я просто преобразовал метод ниже, и он работает как шарм! Надеюсь, это кому-нибудь поможет.

filterIt(arr: any, searchKey: any) {
    return arr.filter((obj: any) => {
      return Object.keys(obj).some((key) => {
        if (obj[key] !== null) {
          const tempKey = obj[key].toString().toLowerCase();
          const tempSearch = searchKey.toLowerCase();
          return tempKey.includes(tempSearch);
        }
      });
    });
  }
...