Javascript 筛选数组中包含特定值的每个字符串

Javascript 筛选数组中包含特定值的每个字符串,javascript,Javascript,我有一个数组: var stringOne = ["big dog","small dog", "big cat", "small cat"] 我想过滤掉包含“dog”的每个字符串 当然,它的功能是: var stringTwo = stringOne.filter((e) => e !== "dog") 因为没有“dog”字符串,所以不起作用,但我很好奇是否有内置函数来完成此任务?您可

我有一个数组:

var stringOne = ["big dog","small dog", "big cat", "small cat"]
我想过滤掉包含“dog”的每个字符串

当然,它的功能是:

var stringTwo = stringOne.filter((e) => e !== "dog")

因为没有“dog”字符串,所以不起作用,但我很好奇是否有内置函数来完成此任务?

您可以使用
string.prototype.includes

var stringOne=[“大狗”、“小狗”、“大猫”、“小猫”]
const filterByWord=(arr,word=”“)=>{
返回arr.filter(s=>{
返回s.tolocalLowercase().includes(word.tolocalLowercase());
});
}
控制台日志(filterByWord(stringOne,dog))是最简单的方法,但它仅限于您正在搜索的确切字符串。即:

“小狗”。包括(“小狗”)\
“大狗”。包括(“狗”)#=>假
通常,软件开发人员在进行比较以规范化字符串之前,会将字符串()小写

“Big Dog”.toLowerCase()包括(“Dog”)#=>正确
另一个非常有用但也很复杂的工具是(regex或regexp简称)。这些允许您使用特殊语法来确定给定字符串是否与指定的条件匹配。我认为对于这个用例来说,regexp有些过分了,但是它们的一些特性回避了外壳问题

regexp=/dog/i#=>匹配不区分大小写的字母“dog”序列
regexp.test(“小狗”)#=>正确
regexp.test(“大狗”)#=>正确
来源

来源

函数myFunction(reg){
var stringOne=[“大狗”、“小狗”、“大猫”、“小猫”];
var dogs=stringOne.filter(函数(val){
if(val.toLowerCase().match(reg)){
返回val;
}
});
控制台日志(狗)
}
var reg=/dog/g;

myFunction(reg)这个处理区分大小写的能力如何?@RichardBarker开箱即用它不会,但它很容易做到。我在@RichardBarker中编辑了更多细节,以处理区分大小写的查询。