Javascript 过滤器会生成一组对象,就像使用lodash的运算符(%oil%)一样

Javascript 过滤器会生成一组对象,就像使用lodash的运算符(%oil%)一样,javascript,jquery,mysql,arrays,lodash,Javascript,Jquery,Mysql,Arrays,Lodash,我想根据用户的输入更改过滤对象数组,并使用LODASH()创建一个新的匹配对象数组 我尝试过lodash\uu.filter,但这会过滤精确的单词和大小写,然后返回单个搜索值 const filtered = _.filter(listing, function(o) { return o.title === "oi"; }); console.log(filtered); 我希望得到与mysql一样的结果,如下所示: WHERE title like

我想根据用户的输入更改过滤对象数组,并使用LODASH()创建一个新的匹配对象数组

我尝试过lodash
\uu.filter
,但这会过滤精确的单词和大小写,然后返回单个搜索值

const filtered = _.filter(listing, function(o) {
        return o.title === "oi";
      });
      console.log(filtered);
我希望得到与mysql一样的结果,如下所示:

WHERE title like %oi% 
它给出了包含该输入的匹配值


谢谢

在您的筛选功能中,使用包含功能 即


在筛选函数中,使用includes函数 即

请看片段, 用于小写以匹配大写和小写的所有字符串, 在您的示例中,字符串“Oil&Gas”是驼峰型,当您尝试匹配该字符串时,它将始终导致空白数组

let list=[{title:“快递/物流”,id:1,totalWorkers:1058,openPositions:0,阿曼:99.72},
{标题:“信息技术”,id:1,totalWorkers:2,openPositions:1,阿曼:50},
{标题:“石油和天然气”,id:1,工人总数:98,空缺职位:6,阿曼:91.84}];
const filtered=u.filter(列表,函数(o){
返回o.title.toLowerCase().indexOf(“oi”)>-1;
});
console.log(过滤)
请参见代码片段, 用于小写以匹配大写和小写的所有字符串, 在您的示例中,字符串“Oil&Gas”是驼峰型,当您尝试匹配该字符串时,它将始终导致空白数组

let list=[{title:“快递/物流”,id:1,totalWorkers:1058,openPositions:0,阿曼:99.72},
{标题:“信息技术”,id:1,totalWorkers:2,openPositions:1,阿曼:50},
{标题:“石油和天然气”,id:1,工人总数:98,空缺职位:6,阿曼:91.84}];
const filtered=u.filter(列表,函数(o){
返回o.title.toLowerCase().indexOf(“oi”)>-1;
});
console.log(过滤)

你根本不需要
lodash

只需使用正则表达式和本机筛选器即可:


listing.filter(o=>o.title.match(/oi/i))

你根本不需要
lodash

只需使用正则表达式和本机筛选器即可:


listing.filter(o=>o.title.match(/oi/i))

==
意味着它必须是相同的。如果要执行部分检查,请使用
.indexOf
。尝试
o.title.indexOf('ol')>-1
或使用regex
/ol/i.test(o.title)
我也尝试过
=
===
=
检查完整值。你需要的是部分检查。因此,regex或indexofy您需要更正谓词,而不是使用“==”检查
indexOf
方法。比如
\u0.filter(清单,v=>v.title.indexOf('oi')!=-1)谢谢Rajesh。很好。
==
意味着它必须是相同的。如果要执行部分检查,请使用
.indexOf
。尝试
o.title.indexOf('ol')>-1
或使用regex
/ol/i.test(o.title)
我也尝试过
=
===
=
检查完整值。你需要的是部分检查。因此,regex或indexofy您需要更正谓词,而不是使用“==”检查
indexOf
方法。比如
\u0.filter(清单,v=>v.title.indexOf('oi')!=-1)谢谢Rajesh。太好了。您不需要
*
。只需检查
oi
是否存在。另外,只需一个指针,这些基本问题已经得到了回答。我们应该寻找类似的帖子并将它们标记为重复,而不是回答它们,因为您不需要
*
。只需检查
oi
是否存在。另外,只需一个指针,这些基本问题已经得到了回答。我们应该寻找类似的帖子,并将它们标记为重复而不是重复。请注意,回答重复的问题是一种不好的做法。正确处理此类帖子的方法是标记/共享重复链接。请注意,回答重复问题是不好的做法。处理此类帖子的正确方法是标记/共享重复链接。
WHERE title like %oi% 
return o.title.includes("oi");