我只想用纯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");
}
}
我将感谢所有人的帮助。
答案 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');