【发布时间】:2021-03-15 02:22:29
【问题描述】:
我有一个依赖于这种过滤方法的搜索栏。
我将所有搜索字符串连接到变量concat 中,然后使用.includes() 或.match(),如下所示。如果搜索多个单词,仅当单词在concat 中连续出现时才会返回结果。
但是,我希望它匹配 concat 中的任何两个单词,而不仅仅是连续的单词。有没有办法轻松做到这一点?
.filter((frontMatter) => {
var concat =
frontMatter.summary +
frontMatter.title +
frontMatter.abc+
frontMatter.def+
frontMatter.ghi+
frontMatter.jkl;
return concat.toLowerCase().match(searchValue.toLowerCase());
});
也试过了;
.filter((frontMatter) => {
const concat =
frontMatter.summary +
frontMatter.title +
frontMatter.abc+
frontMatter.def+
frontMatter.ghi+
frontMatter.jkl;
return concat.toLowerCase().includes(searchValue.toLowerCase());
});
谢谢!
【问题讨论】:
-
所以你想要创建一个变量,将其设置为 true,为
searchValue.toLowerCase().split(" ")执行 forEach,每次检查它是否包含它,如果不包含,则将变量设置为 false ,然后在 forEach 之后只返回变量? -
你不想用空格或其他东西连接所有这些前物质部分吗?目前它只是将它们混合在一起,例如
title = "Hello there"、abc = "abc"和def = "def"...concat是"Hello thereabcdef"
标签: javascript arrays reactjs search next.js