首页 > 解决方案 > 对数组中的任何字符串使用“包含”

问题描述

我有一个搜索功能,可以从搜索栏中获取输入/查询文本。我希望它适用于多个搜索词,例如“javascript react”或更多或更少的搜索词。输入以状态(“查询”)保存在数组中,并与对象“工作项”及其属性“描述”进行比较。

让我们说:

   workitem.description.includes(this.state.query)

在哪里

  this.state.query // = ["react", "javacript"]

以上仅适用于某些情况。我想看看数组/对象是否包含状态的任何元素。怎么做?

标签: javascriptreactjs

解决方案


// if needed, do a 
// if (!workitem.description || !this.state.query) {
//     return false;
// }

考虑description是一个数组:

return workitem.description.some(desc => this.state.query.indexOf(desc) >= 0)

考虑description是一个字符串:

return workitem.description
    .split(' ')
    .some(desc => state.query.indexOf(desc) >= 0);

推荐阅读