Найти запись в многомерном массиве, где часть свойства совпадает с заданным текстом - PullRequest
1 голос
/ 10 мая 2019

У меня есть массив, который содержит три свойства:

ID : number

Name : string

Description :string

ItemList :array<T>=[] and

ItemListCopy :array<T>=[] 

Теперь он связан с выпадающим списком ng-multiselect

После onFilterChange обратного вызова Я отправляю текст поиска этому методу обратного вызова и пытаюсь найти все элементы в ItemListCopy, где Name содержит текст поиска.

Я попробовал подход ниже:

var v = this.ItemListCopy.filter(item =>
    Object.keys(item).some(k => item[k].includes(text))
  )
  if (v != null && v.length > 0) {
    this.ItemList.length = 0;
    this.ItemList= v;
  }

Где текст - это параметр, содержащий текст для поиска.

Но выдает ошибку item[k].includes(text) это не метод.

Как мне этого добиться?

1 Ответ

2 голосов
/ 10 мая 2019

Попробуйте просто посмотреть на Name:

var v = this.ItemListCopy.filter(({ Name }) => Name.includes(text));
...