Javascript 用一个数组过滤另一个数组

Javascript 用一个数组过滤另一个数组,javascript,arrays,array-filter,Javascript,Arrays,Array Filter,我知道这个问题已经被回答了好几次,但根据我的情况,我似乎找不到答案。我有两个阵列: words ['word1', 'word2', 'word3'] texts [ {name: 'blah', description: 'word4'}, {name: 'blah2', description: 'word1'}, {name: 'blah3', description: 'word5'} ] 我试图过滤这两个数组,如果存在匹配项,则返回true 我见过几个简单的数

我知道这个问题已经被回答了好几次,但根据我的情况,我似乎找不到答案。我有两个阵列:

words ['word1', 'word2', 'word3']
texts [
    {name: 'blah', description: 'word4'},
    {name: 'blah2', description: 'word1'},
    {name: 'blah3', description: 'word5'}
]
我试图过滤这两个数组,如果存在匹配项,则返回true


我见过几个简单的数字数组的例子,但在这里不适用。

您可以使用filter和include来知道对象中存在哪个单词

var words=['word1','word2','word3']
变量文本=[
{name:'blah',description:'word4'},
{name:'blah2',description:'word1'},
{name:'blah3',description:'word5'}
]

console.log(text.filter((x)=>words.includes(x.description)).length>0?true:false)
我认为这将解决您的问题:

const words=['word1','word2','word3']
常量文本=[
{name:'blah',description:'word4'},
{name:'blah2',description:'word1'},
{name:'blah3',description:'word5'}
]
功能检查(arra、arrb){
return!!text.find(_text=>words.includes(_text.description))
}

log(检查(单词、文本))
您可以使用迭代
文本
,并使用检查
单词
中的匹配项。如果
单词
文本
的长度分别为
n
m
,则这是O(nm)时间复杂度

const words=['word1','word2','word3']
常量文本=[
{name:'blah',description:'word4'},
{name:'blah2',description:'word1'},
{name:'blah3',description:'word5'}
]
console.log(
一些(
({description})=>words.includes(description)
)

)
预期输出是什么?如果存在匹配项,则为true(1),或者唯一的警告是,如果
单词中的任何一个是空字符串,并且找到匹配项,则此方法将不正确。最好是显式地
!==未定义
而不是使用双重否定。嘿,帕特里克,我有一个新问题。我需要使搜索不区分大小写。我可以用words.includes(description.toLowerCase())来完成,但我不知道如何处理文本。一些({description})有什么想法吗?