Typescript Dynami c фильтрующий массив объектов - PullRequest
0 голосов
/ 12 марта 2020

У меня есть массив объектов, я хочу создать динамический c фильтр, который означает просто передать значение без ключа для поиска каждого ключевого значения объекта и вернуть соответствующие объекты. То же, что и таблица материалов angular, которая фильтрует все столбцы

[
   {
      "id":4,
      "email":"eve.holt@reqres.in",
      "first_name":"Eve",
      "last_name":"Holt",
      "avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg",
      "date":"2020-02-24T13:19:08.630025Z"

},
   {
      "id":5,
      "email":"charles.morris@reqres.in",
      "first_name":"Charles",
      "last_name":"Morris",
      "avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/stephenmoon/128.jpg",
      "date":"2020-02-24T13:19:08.630025Z"

},
   {
      "id":6,
      "email":"tracey.ramos@reqres.in",
      "first_name":"Tracey",
      "last_name":"Ramos",
      "avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/bigmancho/128.jpg",
      "date":"2020-02-24T13:19:08.630025Z"

}
]

Также я хочу иметь возможность фильтрации по дате

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Вы можете сделать это следующим образом, предполагая, что data содержит ваш массив объектов.
filtered содержит результаты с сопоставленными объектами.

const search = 'yourValue';
const filtered = data.filter(obj => {
  return !!JSON.stringify(Object.values(obj)).match(new RegExp(search, 'i'));
});
0 голосов
/ 12 марта 2020

Вы можете использовать Lunr для облегченной реализации полнотекстового поиска. Для фильтрации даты вы можете использовать Crossfilter .

...