Javascript 如何检查字符串是否有元音?
我试着写一个函数来检查给定的字符串是否包含元音,但我不明白为什么它适用于某些单词“cat”和“why”,而不是“DOG”,我相信我已经考虑了大写字母Javascript 如何检查字符串是否有元音?,javascript,arrays,Javascript,Arrays,我试着写一个函数来检查给定的字符串是否包含元音,但我不明白为什么它适用于某些单词“cat”和“why”,而不是“DOG”,我相信我已经考虑了大写字母 const containsVowels = string => { var lowerCase = string.toLowerCase(); var word = lowerCase.split(""); var vowelsArray = ["a","o",&qu
const containsVowels = string => {
var lowerCase = string.toLowerCase();
var word = lowerCase.split("");
var vowelsArray = ["a","o","i","u","y"];
const result = word.filter(letter => vowelsArray.includes(letter));
return result.includes("a","o","i","u","y");
})
includes
只接受两个参数,第一个参数是searchElement
,第二个参数是fromIndex
参考:
如果结果数组包含元音或不包含元音,则不希望执行最后一次检查,因为在上一步中,您过滤掉了单词,以获得仅包含元音的数组。因此,只需检查数组是否为空或其中是否包含任何元素
const containsVowels = str => {
let lowerCase = str.toLowerCase();
let word = lowerCase.split("");
let vowelsArray = ["a","o","i","u","y"];
const result = word.filter(letter => vowelsArray.includes(letter));
return result.length > 0;
};
console.log(containsVowels("cat"));
console.log(containsVowels("DOG"));
console.log(containsVowels("BCDF"));
建议:不要使用内置关键字作为变量
正如穆罕默德所指出的,我们可以使用正则表达式来确定字符串是否包含元音
const containsVowel = str => {
const vowelRegex = /[aeiou]/i;
return vowelRegex.test(str);
};
2个问题
为什么要使用includes两次?&
不能像这样使用includes
result.includes("a","o","i","u","y");
包含仅接受2个参数:包括(searchElement,fromIndex)
通过过滤,您已经知道结果。 您应该做的是,比较结果的长度:
const containsVowels = string => {
let lowerCase = string.toLowerCase();
let word = lowerCase.split("");
let vowelsArray = ["a","o","i","u","y"];
const result = word.filter(letter => vowelsArray.includes(letter));
return result.length > 0 ? true : false
};
使用regex获得结果
var regEx = /[aeiou]/gi
var test_string = "Cat";
var match = test_string.match(regEx)
if(match)
console.log("Match found", match)
当你写这样的东西时
结果。包括(“a”、“o”、“i”、“u”、“y”)
仅尝试返回结果您可以使用比数组更快的正则表达式。过滤器使用正则表达式支持更新答案