检查元音或辅音

时间:2019-05-03 09:53:07

标签: javascript

我只想用纯js开发我的思维逻辑。问题是,当我使用帮助node.js在控制台中运行脚本时,它将为我显示每次迭代。元音和辅音。但是我只需要在控制台中编写一次即可。也许,我应该在整个元音列表之后将结果保存在一个单独的变量中?但是我不怎么做,下面是代码:

// problem who i can't do
function letter(arg) {
    var vowel = "aeouiAEOUI";
    var result = "";
    for(var i = 0; i < vowel.length; i++) {
        if(arg === vowel[i]) {
            console.log("vowel");
        } else {
            console.log("consonant");
        }
    }
}

我在Stack Overflow上找到了已解决的任务。但是我不明白为什么? arg> = 0吗?

function letter_indexof(arg) {
    var vowels = ["a","e","i","o","u"]; 
    if(vowels.indexOf(arg.toLowerCase()) >= 0) {
        console.log("vowel");
    } else {
        console.log("consonant");
    }   
}

我将感谢所有人的帮助。

1 个答案:

答案 0 :(得分:2)

要调整当前代码,可以使用一个变量来指示字符是否为辅音,并以true开头,如果找到元音,则将其重新分配给false,然后检查该变量:

function letter(arg) {
  var vowel = "aeouiAEOUI";
  var result = "";
  let isConsonant = true;
  for (var i = 0; i < vowel.length; i++) {
    if (arg === vowel[i]) {
      isConsonant = false;
    }
  }
  if (isConsonant) {
    console.log("consonant");
  } else {
    console.log("vowel");
  }
}

letter('a');
letter('f');

您也可以在找到元音时立即登录并return

function letter(arg) {
  var vowel = "aeouiAEOUI";
  var result = "";
  for (var i = 0; i < vowel.length; i++) {
    if (arg === vowel[i]) {
      console.log("vowel");
      return;
    }
  }
  console.log("consonant");
}

letter('a');
letter('f');

使用正则表达式会更容易:

const letter = arg => console.log(
  /[aeiou]/i.test(arg) ? 'vowel' : 'consonant'
);

letter('a');
letter('f');