我正在做一个初学者练习,创建一个rövarspråket翻译。试图了解rövarspråket翻译
编写一个函数translate(),将文本翻译成 “rövarspråket”。也就是说,将每个辅音加倍,并在其间放置一个“o”发生的 。例如,翻译(“这很有趣”) 应返回字符串“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"
,则返回“XYZtothohisos isos fofunon”。为什么只在第一个辅音之前,而不是所有的辅音?