练习题 - 编写一个将文本翻译成“rövarspråket”的函数translate()。也就是说,每个辅音都加倍,并在它们之间出现“o”。例如,翻译(“这很有趣”)应该返回字符串“tothohisos isos fofunon”。
我不明白为什么我的代码不起作用。
var word = prompt("Enter a word");
var vowels = ["a", "e", "i" ,"o", "u"];
var output;
for (var i=0; i < word.length; i++) {
if (word.charAt(i) != "a" || "e" || "i" || "o" || "u" ) {
output = word.charAt(i) + "o" + word.charAt(i);
} else {
output = word.charAt(i);
}
document.getElementById("paragraph").innerHTML = output;
}
答案 0 :(得分:2)
试试这个:
var word = prompt("Enter a word");
var vowels = ["a", "e", "i" ,"o", "u"];
var output;
for (var i=0; i < word.length; i++) {
if (vowels.indexOf(word.charAt(i))==-1 ) {
output += word.charAt(i) + "o" + word.charAt(i);
}
else{
output += word.charAt(i);
}
document.getElementById("paragraph").innerHTML = output;
}
请注意,我将word.charAt(i)替换为vowels.indexOf 通过使用indexOf,您可以通过返回的值来确定数组中是否存在某些内容。如果元素不存在,则返回-1,或者数组中的元素的索引
答案 1 :(得分:1)
此代码
if (word.charAt(i) != "a" || "e" || "i" || "o" || "u" ) {...}
装置
如果[(word.charAt(i) !="a")
或"e"
或"a"
...]
并且&#34; e&#34;当转换为布尔值时,求值为true。
执行您尝试执行的操作的正确代码将是
if (word.charAt(i) != "a") && (word.charAt(i) != "e") && (word.charAt(i) != "i") && (word.charAt(i) != "o") && (word.charAt(i) != "u") ) {...}
此外,将output =
命令更改为output+=
答案 2 :(得分:1)
这可以通过正则表达式一行来实现:
nightwatch.conf.js
在你的例子中:
yourString.replace(/([bcdfghjklmnpqrstvwxz])/g, '$1o$1'); // Add the accepted characters here
输出
"this is fun".replace(/([bcdfghjklmnpqrstvwxz])/g, '$1o$1')