This question already has answers here:
Count number of matches of a regex in Javascript
                                
                                    (6个答案)
                                
                        
                2年前关闭。
            
        

我的小功能似乎没有更新totalVowels变量。
我目前的思路是:将参数转换为数组,对数组进行迭代,如果索引与我的vowel正则表达式匹配,则我的totalVowels变量将为每个匹配项加1。

我觉得解决方案就在我的脑海底下,但是我一直在改变很多小事情,以使其能够正常工作,而且我目前没有任何想法。



    function VowelCount(str) {
     let strArr = str.split('');
     let totalVowels  = 0;
     let vowel = /a|e|i|o|u/gi
     for (let i = 0; i < strArr.length; i++) {
        if (strArr[i] === vowel) { totalVowels++ }
     }
     return totalVowels;
    }

    console.log(VowelCount('vowel'));

最佳答案

使用.match()而不是strArr[i] === vowel进行if条件检查,因为您使用的是正则表达式:



function VowelCount(str) {
  let strArr = str.split('');
  let totalVowels = 0;
  let vowel = /a|e|i|o|u/gi
  for (let i = 0; i < strArr.length; i++) {
    if (strArr[i].match(vowel)) {
      totalVowels++
    }
  }
  return totalVowels;
}

console.log(VowelCount('hello there'));

关于javascript - totalVowels变量未更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52973125/

10-11 05:56