Как мне отфильтровать данные на основе поискового ввода из массива объектов в React, ES6 - PullRequest
0 голосов
/ 23 октября 2019

У меня есть шаблон данных JSON, поступающий из API следующим образом. Мне удалось отфильтровать данные с помощью ключа body. Я пытаюсь реализовать функцию поиска, которая должна выполнять поиск по всему массиву объектов независимо от key на основе пользовательского ввода. Может кто-нибудь, пожалуйста, руководство, как этого добиться. Я пытался использовать вложенный цикл для получения индивидуального ключа, но не удачи.

[
  {
    "postId": 1,
    "id": 1,
    "name": "id labore ex et quam laborum",
    "email": "Eliseo@gardner.biz",
    "body": "laudantium enim quasi est quidem magnccusantium"
  },
  {
    "postId": 1,
    "id": 2,
    "name": "quo vero reiciendis velit similique earum",
    "email": "Jayne_Kuhic@sydney.com",
    "body": "est natus enim nihil est dolore is et"
  }
  ...
]

Используемая в настоящее время логика поиска на основе ключей

const filteredData = data.filter(item =>
      item.body.includes(searchTerm.value)
    );
    this.setState({ filteredData: filteredData });

Я создал рабочий пример, используя Песочница . Кто-нибудь может подсказать, как добиться результатов поиска по всему массиву объектов?

1 Ответ

3 голосов
/ 23 октября 2019

Попробуйте это:

const filteredData = data.filter(item => Object.values(item).some(val => val.toString().includes(searchTerm.value)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...