【发布时间】:2015-09-28 13:03:20
【问题描述】:
我正在做一个初学者练习,创建一个 rövarspråket 翻译器。
编写一个函数 translate() 将文本翻译成 “rövarspråket”。也就是说,将每个辅音加倍并放置一个 中间出现“o”。例如, translate("这很有趣") 应该返回字符串“tothohisos isos fofunon”。
我想出的解决方案很糟糕,所以我找到了一个here 并试图理解它。
var translate = function(text) {
var string = text.toLowerCase();
var vowels = ["a", "e", "i", "o", "u", " "];
var y = "";
for (i = 0; i < string.length; i++) {
var current = string.charAt(i);
if (vowels.indexOf(current) != -1) {
y = (y + (current));
} else {
y = (y + (current + "o" + current));
}
}
return y;
}
console.log(translate("this is fun"));
为什么
if (vowels.indexOf(current) != -1)需要-1?我试过-2、-1000、1000,但都破坏了功能。如果我将
y = "";更改为y = "XYZ",translate("this is fun")返回“XYZtothohisos isos fofunon”。为什么只在第一个辅音之前而不是全部?
【问题讨论】:
标签: javascript function if-statement for-loop