javascript - 在 react 中,如何使用条件来创建自定义搜索功能?

标签 javascript reactjs

我有一个项目状态,它是一个包含以下数据的数组类型。

projects array

使用此数据,我需要根据与 company_nameproject_nameproject_description 匹配的搜索输入来过滤用户的结果>release_name,和release's description

this.state = {
  projects: [],
  searchfield: ''
};

onSearchChange = (event) => {
  this.setState({ searchfield: event.target.value })
}

<input type="text" placeholder="Search" className="form-control search-input" onChange={this.onSearchChange.bind(this)} />

render() {
    return(
        const filterProjects = this.state.projects.filter(data => {
            // filter projects based on project's name
          return data.project_name.toLowerCase().includes(this.state.searchfield.toLowerCase());
        })
    )
}

目前,我只能根据与项目名称匹配的关键字来过滤结果。

我可以使用其他属性或添加条件来根据其他属性过滤数据吗?

最佳答案

如果您想查看这些字段中是否存在术语,您可以使用 Array#some()

const filterFields = ['company_name', 'project_name', 'project_description', 'release_name', 'descrip'];

const { projects, searchfield) = this.state;

const term = searchfield.toLowerCase(); 

const filterProjects = projects.filter(data => {  
  return filterFields.some(field => data[field].toLowerCase().includes(term))
});

关于javascript - 在 react 中,如何使用条件来创建自定义搜索功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52174230/

相关文章:

javascript - 适用于 ASP.net Web 窗体的最佳 CSS 和 JS 压缩器

javascript - react ;父级从子级获取输入数据

reactjs - 在使用 exceljs 读取后,在 react-dropzone `onDrop` 中设置状态变量

javascript - 我收到 404 未找到 api

javascript - 在 Qualtrics Surveys 中,如何在单击下一个按钮时将对项目的响应保存到嵌入数据中?

javascript - 设置文件上传字段值 - Javascript/jQuery

用于带括号的单词边界检测的javascript正则表达式

javascript - 如何防止选定的长字符串值在 react 选择控件中被 chop ?

javascript - 单击 React 元素列表并将其作为值存储在另一个列表中

javascript - 当有人像 facebook 广告一样滚动我们的页面时,如何创建固定的 div?