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})有什么想法吗?