Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查字符串是否有元音?_Javascript_Arrays - Fatal编程技术网

Javascript 如何检查字符串是否有元音?

Javascript 如何检查字符串是否有元音?,javascript,arrays,Javascript,Arrays,我试着写一个函数来检查给定的字符串是否包含元音,但我不明白为什么它适用于某些单词“cat”和“why”,而不是“DOG”,我相信我已经考虑了大写字母 const containsVowels = string => { var lowerCase = string.toLowerCase(); var word = lowerCase.split(""); var vowelsArray = ["a","o",&qu

我试着写一个函数来检查给定的字符串是否包含元音,但我不明白为什么它适用于某些单词“cat”和“why”,而不是“DOG”,我相信我已经考虑了大写字母

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”)
仅尝试返回结果您可以使用比数组更快的正则表达式。过滤器使用正则表达式支持更新答案