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中编辑了更多细节,以处理区分大小写的查询。