繁体   English   中英

如何根据 React,ES6 中对象数组的搜索输入过滤数据

[英]How do I filter the data based on search input from array of objects in React, ES6

我有来自 API 的 JSON 数据模式,方法如下。 我能够使用body键过滤数据。 我正在尝试实现搜索功能,该功能应该搜索所有对象数组,而不考虑基于用户输入的key 有人可以指导如何实现这一目标。 我尝试使用嵌套的 for 循环来获取单个密钥,但不是运气。

[
  {
    "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 });

我使用Sandbox创建了一个工作示例。 谁能指导如何从整个对象数组中获得搜索结果?

尝试这个:

const filteredData = data.filter(item => Object.values(item).some(val => val.toString().includes(searchTerm.value)));

item => { Let foundMatchedKey = item.keys.find(key => item[key].includes(searchTearm.value) If(foundMatchedKey) { return true} else { return false } }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM