javascript - 检查是元音还是辅音

标签 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");
    }   
}

我将感谢所有人的帮助。

最佳答案

要调整当前的代码,您可以使用一个变量来指示该字符是否为辅音,并以 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');

您还可以在找到元音时立即记录并返回:

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');

关于javascript - 检查是元音还是辅音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55967359/

相关文章:

javascript - 在 Ember 模型的计算属性中使用 Promise

javascript - 管道在这个 AngularJS 表达式中做了什么

JavaScript 2.0 规范

javascript - .js、css 或 html - 如何将对象更改为两种不同的颜色?

javascript - 嵌入的 Google map 显示为灰色

javascript - 由于索引,二进制搜索不起作用?

javascript - 使用复选框切换文本字段的显示

javascript - ExtJS4 模板参数

javascript - 是否可以在不使用 JavaScript 的情况下更改 html 内容?

javascript - 在 iPhone 和 iPad 之间切换 Div