我在没有老师的情况下做运动问题,所以我要上网寻求帮助。
我正在尝试解决这个问题:
编写一个函数translate(),将文本翻译成“rövarspråket”。也就是说,每个辅音都加倍,并在它们之间出现“o”。例如,翻译(“这很有趣”)应该返回字符串“tothohisos isos fofunon”。
然而,当我试图区分元音和辅音时,我遇到了一个问题。这就是我所拥有的:
function translate(text){
var newText;
if (!(text.charAt(0) == "a" || "e" || "i" || "o" || "u")){
newText = text.charAt(0) + "o" + text.charAt(0);
} else {
newText = text.charAt(0);
}
for (var i = 0; i<text.length; i++){
if (!(text.charAt(i) == "a" || "e" || "i" || "o" || "u")){
newText += text.charAt(i) + "o" + text.charAt(i);
} else {
newText += text.charAt(i);
}
}
console.log(newText);
}
translate("hello this is");
有人可以解释为什么||运营商不工作?我认为这将解决我遇到的问题。
答案 0 :(得分:3)
你误用了OR运算符;每个条件都需要完成。试试这个:
if (!(text.charAt(0) == "a"
|| text.charAt(0) == "e"
|| text.charAt(0) == "i"
|| text.charAt(0) == "o"
|| text.charAt(0) == "u") ){
作为替代方案(因为这可能很快变得难以处理),您可以将元音存储在单独的数组中,然后检查给定字符是否在数组中。
var vowels = ["a", "e", "i", "o", "u"];
if(vowels.indexOf(text.charAt(0).toLowerCase()) === -1) {
// Vanna, I'd like to buy a vowel
}
else {
// Consonant
}